JavaScript 정기 연습 (최근의 글을 기반으로 지속적으로 업데이트됩니다)
1. JavaScript 일반 객체 교체 생성 및 사용 : /Pattern /Flags 먼저 간단한 케이스를 배우고 교체 할 수있는 일을 이해합니다.
정규 표현 생성자 : 새로운 regexp ( "Pattern"[, "flags"]);
정규 표현식 교체 변수 기능 : StringObj.replace (regexp, 텍스트 교체);
매개 변수 설명 :
패턴 - 정규 표현식 텍스트
플래그 - 존재하면 다음 값이됩니다.
G : 글로벌 경기
I : 사례를 무시하십시오
GI : 위의 조합
// 다음 예제는 URL의 두 매개 변수를 얻고 urlrewrite reg = new regexp 이전의 실제 urlvar를 반환하는 데 사용됩니다 ( "(http://www.qidian.com/bookreader/)(//d+) url = "http://www.qidian.com/bookreader/1017141,20361055.aspx"; // 메소드 1, 가장 단순하고 가장 일반적으로 사용되는 메소드 var rep = url.replace (reg, "$ 1showbook.aspx? bookid = $ 2 & chapterid = $ 3"; rep); // method it the the callbok function as the a word rep2 = url.replace (reg, function (m, p1, p2, p3) {return p1+"showbook.aspx? bookid ="+p3+"& chargeid ="+p3}); Alert (rep2); 메소드 3, 비 고정 매개 변수 var rep3 = url.replace (retl.replace)와 함께 콜백 함수를 사용하십시오. args [1]+"showbook.aspx? bookid ="+args [2]+"& chaperid ="+args [3];}); 경고 (rep3); 메소드 4 // 메소드 4와 매우 유사합니다. 대체 된 문자열을 반환하는 것 외에도 매개 변수 var bookid를 얻을 수 있습니다. var 챕터; 함수 captext () {var args = arguments; Bookid = args [2]; ChapterId = args [3]; return args [1]+"showbook.aspx? bookid ="+args [2]+"& chaperid ="+args [3];} var rep4 = url.replace (reg, captext); Alert (rep4); Alert (BookID); Alert (chapterID); // 그룹을 사용하여 var reg3 = new를 얻습니다. regexp ( "(http://www.qidian.com/bookreader/)(//d+) 경고 (Regexp. $ 2); 경고 (Regexp. $ 3);2. 가장 일반적으로 사용되는 테스트 exec 매치 검색 검색 분할 6 방법을 대체합니다.
1) 지정된 문자열이 존재하는지 확인하십시오
var data =“123123”;
var recat = /123 /gi;
경고 (recat.test (data)); //진실
// 캐릭터가 존재하는지 확인하기
2) 실행은 쿼리 값을 반환합니다
var data = "123123,213,12312,312,3, 고양이, 고양이, DSFSDFS";
var recat = /cat /i;
alert (recat.exec (data)); //고양이
3) 일치는 쿼리 배열을 가져옵니다
var data = "123123,213,12312,312,3, 고양이, 고양이, DSFSDFS";
var recat = /cat /gi;
var arrmactches = data.match (recat)
for (var i = 0; i <arrmactches.length; i ++)
{
경고 (arrmactches [i]); // 고양이 고양이
}
4) indexof와 유사한 검색 반환 검색 위치
var data = "123123,213,12312,312,3, 고양이, 고양이, DSFSDFS";
var recat = /cat /gi;
경고 (data.search (recat)); // 23
5) 정기적 인 교체를 사용하여 교체 문자를 교체하십시오
var data = "123123,213,12312,312,3, 고양이, 고양이, DSFSDFS";
var recat = /cat /gi;
Alert (data.replace (Recat, "libinqq"));
6) 일반 세그먼트 배열을 사용하여 분할
var data = "123123,213,12312,312,3, 고양이, 고양이, DSFSDFS";
var recat = //,/;
var arrdata = data.split (recat);
for (var i = 0; i <arrdata.length; i ++)
{
경고 (ARRDATA [I]);
}
3. 일반적으로 사용되는 표현식 수집 :
"^// d + $"// 음이 아닌 정수 (양의 정수 + 0)
"^[0-9]*[1-9] [0-9]*$"// 긍정적 인 정수
"^((-// d+) | (0+)) $"// 긍정적 인 정수가 아님 (음성 정수+0)
"^-[0-9]*[1-9] [0-9]*$"// 부정적인 정수
"^-? // d+$"// 정수
"^// d+(//.// d+)? $"// 비 음성 부동 소수점 번호 (양의 부동 소수점 번호+0)
"([0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*// [0-9]+) | ([0-9]*[1-9] [0-9]*)) $".
// 양수 부동 소수점 번호
"^((-// d+(//.// d+)?) | (0+(//. 0+)?)) $"// 비 양성 부동물 포인트 번호 (음의 부동 소수점 번호+0)
"^(-([0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*//. [0-9]+) | ([0-9]*[1-9] [0-9]*)) $"
// 음의 부동 소수점 번호
"^(-? // d+) (//./ d+)? $"// 플로팅 포인트 번호
"^[a-za-z]+$"// 26 개의 영어 문자로 구성된 문자열
"^[az]+$"// 26 개의 영어 문자 대문자로 구성된 문자열
"^[az]+$"// 26 개의 영어 문자의 소문자로 구성된 문자열
"^[a-za-z0-9]+$"// 숫자와 26 개의 영어 문자로 구성된 문자열
"^// w+$"// 숫자, 26 개의 영어 문자 또는 밑줄로 구성된 문자열
"^[// w-]+(//. [// w-]+)*@[// w-]+(//
"^[a-za-z]+: // (// w+(-// w+)*) (//. (// w+(-// w+)*))*(//? // s*)? $"// url
"^[a-za-z0-9 _]*$".
정규 표현의 기본 사항
^ 입력 또는 줄의 시작과 일치합니다.
$ 입력 또는 줄의 끝과 일치합니다. / a $ /는 "a a", "a a"는 아닙니다.
* 이전 Metacharacter와 0 번 이상 일치, / ba* /는 B, BA, BAA, BAA와 일치합니다.
+ 이전 Metacharacter와 1 번 이상 일치하고 / ba+ /는 BA, BAA, BAAA와 일치합니다.
? 이전 Metacharacter 0 또는 1 시간 일치, / ba? / Will B, Ba.
(x) 일치 X는 x를 $ 1 ... $ 9라는 변수로 저장합니다.
x | y는 x 또는 y와 일치합니다
{n} 정확히 일치 n 번
{n,}는 N 시간보다 더 일치합니다
{n, m} nm 횟수와 일치합니다
[xyz] 문자 세트,이 세트에서 캐릭터 (또는 metacharacter) 일치
[^xyz]는이 컬렉션의 문자와 일치하지 않습니다
[/b] 백 스페이스 문자와 일치합니다
/b는 단어의 경계와 일치합니다
/b는 단어의 비 바운드와 일치합니다
/cx here, x는 제어 문자입니다. // cm/ctrl-m과 일치합니다.
/d는 문자와 일치합니다, // d/=/[0-9]/
/d는 비 단어 숫자 문자와 일치합니다. // d/=/[^0-9]/
/n은 Newline 캐릭터와 일치합니다
/r은 캐리지 리턴 문자와 일치합니다
/s는/n,/r,/f,/t,/v 등을 포함한 공백 문자와 일치합니다.
/s는/[^/n/f/r/t/v]와 같은 비 whitespace 문자와 일치합니다.
/t는 탭 문자와 일치합니다
/V는 리디렉션 탭 문자와 일치합니다
/w는 [/w]와 같은 밑줄을 포함하여 단어를 형성 할 수있는 문자와 일치합니다 (숫자를 포함하여 숫자를 포함하여 숫자를 포함한 번역).
/w는 [/w]와 같은 단어를 형성 할 수없는 문자와 일치합니다.