2011-09-24 5 views
2

내가 최근에 문을 가로 질러 온 :/;/및/^ + /는 무엇을 나타 냅니까?

var cookies = document.cookie.split(/;/); 

및 나타내는 분할의 인수에 /;/을 무엇을 첫 번째 문에서

var pair = allCookies[i].split("=", 2); 
if (pair[0].replace(/^ +/, "") == "lastvisit") 

?

두 번째 명령문에서 replace의 인수에있는 /^ +/은 무엇을 의미합니까?

+0

정규 표현식입니다. – Joe

답변

7

이들은 Regular Expressions입니다.

자바 스크립트 supports them natively. 이 특정 예에서

:

  1. .split(/;/)가 분리 자로 사용 ;;
  2. .replace(/^ +/, "") 제거합니다 ("") 어떤 (+) 선도 (^) 공백 (). 두 예에서

, / 서라운드 또는 를 단락 당신이 정규식을 제공하고 자바 스크립트를 알리는 정규 표현식 (또는 "정규식").

자세한 내용은 위에 제공된 링크를 따르십시오. 정규 표현식은 범위가 넓고 학습 가치가 있습니다.

+0

'.split (";")' – saplingPro

+1

을 쓸 수없는 이유는 무엇입니까? @grassPro : 가능합니다. ['split'은 문자열을 취하거나 일반 표현식을 사용합니다.] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split) –

+0

'/; /'와는 다른 점이 무엇입니까? – saplingPro

-2

난 생각/^ +/수단, 하나 이상의 아뇨 ""문자

+0

^는'[]'범위의 문맥을 의미 할뿐만 아니라, 정규 표현식의 시작 부분에있는 경우, 줄의 시작을 의미합니다. –

+0

잘못 생각합니다. –

0

// 구문 (또한 '정규식'라고도 함) 일반 식을 나타낸다.

정규식은 문자열 검색 및 바꾸기 구문입니다.

첫 번째 예는 /;/입니다. 이것은 문자열을 세미콜론으로 검색 한 다음 결과에 따라 배열로 분할하는 매우 단순한 정규식입니다. 이것은 특별한 정규식 기능을 사용하지 않기 때문에 결과에 아무런 차이를주지 않고 간단한 문자열, 즉 split(";") (다른 예제의 등호와 같이)으로 쉽게 표현할 수 있습니다.

두 번째 예는 /^ +/입니다. 이것은 더 복잡하고 정규식이 작동하는 방법에 대한 약간의 지식이 필요합니다. 간단히 말해, 문자열에서 선행 공백을 검색하고 공백을 제거하는 것입니다. 도움이 http://www.regular-expressions.info/

희망 :

정규식에 대한 자세한 내용은, 나는 좋은 출발점으로이 사이트를 추천합니다.

3

슬래시는 따옴표로 문자열을 구분하는 것처럼 일반 표현을 구분합니다.

/; /는 세미콜론과 일치합니다.특히 :

var cookies = document.cookie.split(/;/); 

우리가 세미콜론가있는 곳을 분할, 배열로 document.cookie를 문자열을 분할 의미합니다. 그래서 그것은 "a, b, c"와 같은 것을 취해 그것을 "" "a", "b", "c"로 바꿀 것입니다.

pair[0].replace(/^ +/, "") 

모든 선행 공백을 제거합니다. 그것은이 공백이야, 캐럿 ^은 "라인의 시작"을 의미

"lastvisit" 

"  lastvisit" 

을 전환하고, +는 공간을 한 번 이상, 가능한 한 많은 반복을 의미합니다.

+0

'/'는 무엇을 나타 냅니까? – saplingPro

+0

내가 말했듯이, 슬래시는 따옴표로 구분 된 문자열처럼 정규식을 구분합니다. 예 :/정규식/대 "문자열" – Asmor

+0

@ grassPro : 나는 두 시간 전에 너에게 말했다. –

관련 문제