이 함수의 첫 번째 매개변수는 패턴과 일치하는 문자열입니다. 다음 인수는 패턴의 하위 표현식과 일치하는 문자열입니다. 이러한 인수는 0개 이상이 있을 수 있습니다. 다음 매개변수는 일치가 발생하는 stringObject의 위치를 선언하는 정수입니다. 마지막 매개변수는 stringObject 자체입니다.
다음은 자바스크립트 정규식을 대체하는 몇 가지 방법을 보여줍니다. 두 번째 및 타사 방법과 같이 다른 곳에서는 거의 볼 수 없는 방법도 있습니다.
//다음 예를 사용하여 가져옵니다. 두 개의 URL 매개변수를 사용하고 urlRewrite
var reg=new RegExp("(http://www.jb51.net/BookReader/)(\d ),(\d ).aspx","gmi 전에 실제 URL을 반환합니다. ") ;
var url="http://www.jb51.net/BookReader/1017141,20361055.aspx";
//방법 1, 가장 간단하고 일반적으로 사용되는 방법
var rep= url.replace( reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep)
//방법 2, 고정 매개변수가 있는 콜백 함수 사용
var rep2= url.replace(reg ,function(m,p1,p2,p3){return p1 "ShowBook.aspx?bookId=" p3 "&chapterId=" p3})
alert(rep2)//메소드 3, 고정되지 않은 매개변수 콜백 함수 사용
var rep3=url.replace(reg,function(){var args=arguments; return args[1] "ShowBook.aspx?bookId=" args[2] "&chapterId= " args[3] ;});
alert(rep3);
//방법 4
//방법 4는 방법 3과 매우 유사합니다. 대체된 문자열을 반환하는 것 외에도 다음을 얻을 수도 있습니다. 매개변수
var bookId;
function capText()
{
var args=arguments;
chapterId=args [3];
return args[1] "ShowBook.aspx?bookId=" args[2] "&chapterId=" args[3];
}
var rep4=url.replace(reg,capText );
alert( rep4);
alert(bookId);
alert(chapterId)
//정규 표현식의 그룹화를 얻는 것 외에도 다음을 수행할 수 있습니다. 그룹화를 얻으려면 test 및 exec 방법을 사용하지만 방법이 다릅니다. 단지 다를 뿐입니다
var reg2=new RegExp("(http://www.jb51.net/BookReader/)(\d ),(\ d ).aspx","gmi");
var m= reg2.exec("http://www.jb51.net/BookReader/1017141,20361055.aspx");
var s="" ;
//모든 그룹 가져오기
for (i = 0; i < m.length; i ) {
s = s m[i] "n"
alert( s);
bookId=m[3];
alert(bookId);
alert(chapterId)// 그룹
var reg3=new RegExp("(http://www.jb51.net/BookReader/)(\d ),(\d ).aspx","gmi")
reg3.test ("http://www.jb51.net/BookReader/1017141,20361055.aspx ");
//3개 그룹 가져오기
alert(RegExp.$1)
alert(RegExp.$2);
alert(RegExp.$3);
var str="www .baidu.com"
//str.format("good","q")
str.replace(new RegExp ("(\.)(bai)du","g"),function (){
for(var i=0;i
{
document.write( 인수[i] "
");
}
document.write("------------ -------- -------
");
});
두 가지 예( 일반 매개변수와 문자 매개변수를 바꾼 결과가 다르다는 것을 증명하세요):
alert(" 123".replace("1",function(){var un;return un;})) //pop up undefine23
alert("123".replace(new RegExp("1"),function(){ var un;return un;})) //팝업 23