>  기사  >  웹 프론트엔드  >  JS_javascript 스킬의 교체 방법에 대한 자세한 소개

JS_javascript 스킬의 교체 방법에 대한 자세한 소개

WBOY
WBOY원래의
2016-05-16 17:48:251413검색

replacement() 메서드의 매개변수 대체는 문자열 대신 함수일 수 있습니다. 이 경우 일치하는 각 항목에 대해 함수가 호출되고 해당 함수가 반환하는 문자열이 대체 텍스트로 사용됩니다. 이 함수의 첫 번째 매개변수는 패턴과 일치하는 문자열입니다. 다음 인수는 패턴의 하위 표현식과 일치하는 문자열입니다. 이러한 인수는 0개 이상이 있을 수 있습니다. 다음 매개변수는 일치가 발생하는 stringObject의 위치를 ​​선언하는 정수입니다. 마지막 매개변수는 stringObject 자체입니다.
다음은 자바스크립트 정규식을 대체하는 몇 가지 방법을 보여줍니다. 두 번째 및 타사 방법과 같이 다른 곳에서는 거의 볼 수 없는 방법도 있습니다.
//다음 예는 urlRewrite 전에 url의 두 매개변수를 얻고 실제 Url을 반환하는 데 사용됩니다.

코드 복사 코드는 다음과 같습니다.

var reg=new RegExp("(http://www.qidian.com/BookReader/)(\d ),(\d ).aspx", "gmi") ;
var url="http://www.qidian.com/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;
var ChapterId;
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 .qidian.com/BookReader/)(\d ),(\d ).aspx","gmi")
var m=reg2.exec("http://www.qidian.com/BookReader/1017141 ,20361055.aspx");
var s="";


//Get 모든 그룹


코드 복사 코드는 다음과 같습니다. for (i = 0; i < m.length; i ) {
s = s m[i] "n"
경고
bookId=m[2]; [3];
alert(bookId);
alert(chapterId);


//그룹 가져오기


코드 복사

//그룹 3개 가져오기



코드 복사

코드는 다음과 같습니다. alert(RegExp.$1); alert(RegExp.$3); var str="www.baidu.com"; //str.format("좋아","q")
str.replace(new RegExp("(\.)( bai)du","g"),function(){

for(var i=0;i{
document.write(arguments[i] "
")
}
document.write("------------------ -------------- -------
");
});

두 가지 예(증명, 대체 일반 매개변수를 입력한 결과와 문자로 매개변수를 전달한 결과가 다름):
alert("123".replace("1",function(){var un;return un;})); //undefine23 팝업
alert(" 123".replace(new RegExp("1") ),function(){var un;return un;})); //팝업 23

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.