자바 스 크 립 트 에 대량의 문자열 상수 의 실현 방법 을 삽입 합 니 다.

2433 단어 문자열 상수
수량 이 적 으 면 괜 찮 습 니 다.많 으 면 빽빽 하 게 쌓 인 문자 입 니 다.아름 다운 문예 청년들 은 대량의 문자 로 기 호 를 연결 하고 심지어 들 여 쓰기 까지 해서 여러 줄 로 강제로 바 꿉 니 다.예 를 들 어

var html =
    '<div>' +
        '<p>Hello</p>' +
        '<p>World'</p>' +
    '</div>';
다행히 문자열 에 작은 따옴표 가 있다 면 더욱 번 거 로 울 것 입 니 다.각종 전의 문 자 는 눈 이 어 지 럽 습 니 다.
사실 별로 눈 에 띄 지 않 는 작은 기교 가 있 으 면 이 문 제 를 해결 할 수 있다.문자열 이'...'이나'...'안에 있어 야 한다 고 생각 하 는 것 이 맞습니다.그러나 또 한 곳 의 문자열 도 비 코드 적 의미 로 저장 할 수 있 습 니 다.그것 은 function 의 toString 입 니 다.전체 함수 의 코드 를 문자열 로 출력 합 니 다.그 중의 주석 부분 도 당연히 보존 되 어 있 습 니 다!
그래서 우 리 는 빈 함 수 를 쓰 는데 그 안에 하나의/*/주석 이 있 는데 그 중에서 우리 가 원 하 는 상수 내용 입 니 다.toString 후 정규 하 나 를 추가 하면 우리 가 원 하 는 것 을 추출 할 수 있 습 니 다!
바로 시도 해 보기:

var RES_CODE = _TEXT(function(){/*
    #include <iostream>

    int main()
    {
        std::cout << "Hello world" << std::endl;
        return 0;
    }
*/});

var RES_POEM = _TEXT(function(){/*
   , 。
   。
   , , 。
   ,
   。
   ,
   , 。
*/});

var RES_XML = _TEXT(function(){/*
    <projectDescription>
        <name>Hello</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
            <buildCommand>
                <name>com.adobe.flexbuilder.project.flexbuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
            <buildCommand>
                <name>com.adobe.flexbuilder.project.apollobuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
        </buildSpec>
    </projectDescription>
*/});

function _TEXT(wrap) {
    return wrap.toString().match(/\/\*\s([\s\S]*)\s\*\//)[1];
}
alert(RES_CODE);
alert(RES_POEM);
alert(RES_XML);

OK!Chrome 에서 줄 마다 앞 에 있 는 Tab 을 지 웠 습 니 다.코드 만 넣 으 면 문제 가 되 지 않 습 니 다~물론 문자 에 나타 나 지 않 는 다 는 전제 가 있 습 니 다*/
주의해 야 할 것 은 코드 를 압축 할 때 주석 을 걸 러 내 고 일부분 을 수 동 으로 제거 해 야 한 다 는 점 이다.

좋은 웹페이지 즐겨찾기