바꾸기 메소드의 구문은 다음과 같습니다. stringObj.replace(rgExp, replacementText) 여기서 stringObj는 문자열(string)이고, reExp는 정규식 개체(RegExp) 또는 문자열(string)일 수 있으며, replacementText는 찾은 항목을 대체합니다. 끈. . . 모두의 이해를 돕기 위해 아래에 간단한 예를 들어보겠습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var stringObj="중구인민공화국, 중구인민";
//오타 "Zhonggu"를 "China"로 바꿉니다.
//바뀐 새 문자를 반환합니다.
//원래 문자열 stringObj의 값은 변경되지 않았습니다.
var newstr=stringObj.replace("중구","중국");
경고(newstr);
</script>
'중구'는 '중국'이다
가치
중국");
당신이 나보다 똑똑하다면, 위의 예를 읽은 후 두 번째 오타인 "Zhonggu"가 "China"로 대체되지 않았다는 것을 알게 될 것입니다. 다음과 같이 개선되었습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var stringObj="중구인민공화국, 중구인민";
//오타 "Zhonggu"를 "China"로 바꿉니다.
//바뀐 새 문자를 반환합니다.
//원래 문자열 stringObj의 값은 변경되지 않았습니다.
var newstr=stringObj.replace("중구","중국");
newstr=newstr.replace("중구","중국");
경고(newstr);
</script>
'중구'는 '중국'이다
가치
중국");
중국");
N의 N제곱 오타가 있는 경우 오타를 대체하기 위해 N의 N제곱 바꾸기 메서드도 실행해야 할까요? ? 아, 걱정하지 마세요. 정규식을 사용하면 오타로 인해 바꾸기 메서드를 한 번 실행할 필요가 없습니다. . 프로그램이 개선된 코드는 다음과 같습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var reg=new RegExp("久古","g"); //일반 RegExp 객체 생성
var stringObj="중구인민공화국, 중구인민";
var newstr=stringObj.replace(reg,"중국");
경고(newstr);
</script>
일반 RegExp 객체 생성
위의 내용은 교체 방법의 가장 간단한 응용 프로그램입니다. 이해가 되셨나요? ? 조금 더 복잡한 애플리케이션부터 시작해 보겠습니다. .
일부 웹사이트에서 기사를 검색하면 이런 현상을 발견할 수 있습니다. 즉, 검색 키워드가 강조 표시되고 색상이 변경되는 것입니다. ? 이것이 어떻게 달성됩니까? ? 실제로 정규식을 사용하여 이를 달성할 수 있습니다. 어떻게 달성할 수 있나요? 간단한 원리는 아래 코드를 참조하세요.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var str="중화인민공화국, 중화인민공화국";
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>");
document.write(newstr);
</script>
위 프로그램은 상호작용성이 부족합니다. 찾으려는 문자를 독립적으로 입력할 수 있도록 프로그램을 개선해 보겠습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var s=prompt("찾고 싶은 캐릭터를 입력해주세요.", "person");
var reg=new RegExp("("+s+")","g");
var str="중화인민공화국, 중화인민공화국";
var newstr=str.replace(reg,"<font color=red>$1</font>");
document.write(newstr);
</script>
사람들");
어쩌면 모든 사람들이 특수 문자 $1이 무엇을 의미하는지 잘 이해하지 못할 수도 있습니다. 실제로 $1은 왼쪽 표현식의 괄호 안의 문자, 즉 첫 번째 부분 일치를 나타냅니다. 마찬가지로 $2는 두 번째 부분 일치를 나타냅니다. . 하위 일치란 무엇입니까? ? 일반인의 관점에서 보면 왼쪽의 각 대괄호는 첫 번째 단어 일치이고 두 번째 대괄호는 두 번째 부분 일치입니다. .
발견된 문자에 대해 작업을 수행하려면 어떻게 구현해야 합니까? ? 구현하기 전에 먼저 특정 함수의 매개변수를 가져오는 방법에 대해 이야기해 보겠습니다. . 함수 내부에는 인수 컬렉션이 있는데, 이 컬렉션에는 현재 함수의 모든 매개변수가 저장되어 있습니다. 이해를 돕기 위해 다음 코드를 참조하세요.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
함수 테스트(){
Alert("매개변수 개수:"+arguments.length);
Alert("각 매개변수의 값: "+인수[0]);
Alert("두 번째 매개변수의 값"+인수[1]);
//for 루프를 사용하여 모든 매개변수를 읽을 수 있습니다.
}
test("aa","bb","cc");
</script>
알리다("
알리다("
알리다("
//모든 매개변수를 읽는 루프
위의 프로그램을 이해한 후, 다음의 흥미로운 프로그램을 살펴보겠습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var reg=new RegExp("//d","g");
var str="abd1afa4sdf";
str.replace(reg,function(){alert(arguments.length);});
</script>
익명 함수가 두 번 실행되었는데, 함수에 세 개의 매개변수가 있다는 사실을 알고 놀랐습니다. 왜 두 번 실행되었나요? ? 우리가 작성한 정규 표현식이 단일 숫자와 일치하고 감지되는 문자열에 우연히 두 개의 숫자가 있으므로 익명 함수가 두 번 실행되기 때문에 이는 생각하기 쉽습니다. . 익명 함수 내부의 세 가지 매개변수는 무엇입니까? ? 이 문제를 명확히 하기 위해 다음 코드를 살펴보겠습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
함수 테스트(){
for(var i=0;i<arguments.length;i++){
Alert(""+(i+1)+"번째 매개변수의 값: "+인수[i]);
}
}
var reg=new RegExp("//d","g");
var str="abd1afa4sdf";
str.replace(reg,test);
</script>
for(var i=0;i<arguments.length;i++){
Alert("매개변수 값: "+인수[i]);
}
관찰 결과, 첫 번째 매개변수는 일치하는 문자를 나타내고, 두 번째 매개변수는 일치 시 문자의 최소 인덱스 위치(RegExp.index), 세 번째 매개변수는 일치하는 문자열(RegExp.input)을 나타내는 것으로 나타났습니다. 실제로 이러한 매개변수의 수는 부분 일치 수가 증가함에 따라 증가합니다. 이러한 문제를 명확히 한 후에는 다른 작성 방법을 사용할 수 있습니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
기능 테스트($1){
"<font color='red'>"+$1+"</font>"를 반환합니다.
}
var s=prompt("찾고 싶은 캐릭터를 입력해주세요.", "person");
var reg=new RegExp("("+s+")","g");
var str="중화인민공화국, 중화인민공화국";
var newstr=str.replace(reg,test);
document.write(newstr);
</script>
"<font color='red'>"+$1+"</font>"를 반환합니다.
사람들");
위 프로그램을 읽은 후에는 일치하는 문자로 원하는 것은 무엇이든 할 수 있다는 것이 밝혀졌습니다. 다음은 간단한 적용 예입니다.
JS 코드
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어="자바스크립트">
var str="그는 22세, 그녀는 20세, 그의 아버지는 45세, 그녀의 아버지는 44세, 총 4명입니다."
기능 테스트($1){
var gyear=(new Date()).getYear()-parseInt($1)+1;
return $1+"("+gyear+"생년월도)";
}
var reg=new RegExp("(//d+)세","g");
var newstr=str.replace(reg,test);
경고(str);
경고(newstr);
</script>