JavaScript 의 string 에 대한 replace
문법: string. replace (subStr / reg, replace Str / function)
첫 번 째 매개 변 수 는 문자열 의 하위 문자열 일 수도 있 고 정규 표현 식 일 수도 있 습 니 다. 두 번 째 매개 변 수 는 문자열 이나 처리 방법 일 수도 있 습 니 다. 다음은 각각 보 겠 습 니 다.
document.write('1234'.replace(1, 'X')); :X234, ,
document.write('1214'.replace(1, 'X')); :X2X4, :X214, , replace
우 리 는 정규 적 인 서법 으로 바 꾸 었 다.
document.write('1214'.replace(/1/g, 'X')); :X2X4
function 의 문법 을 봅 시다.
var r = 'abcd'.replace(/\w/g, function() {
return 'X';
});
document.write(r);
이때 우 리 는 예상 결 과 를 볼 수 있다. XXXX, 모든 문자 가 X 로 바 뀌 었 다. 이것 은 내 가 이전에 replace 에 대한 인식 이지 만 나 는 JavaScript 언어 정수 에서 이런 예 를 보 았 다. 나 는 현혹 되 었 다.
var t = document.getElementById('t');
String.prototype.deentityfy = function() {
var entity = {
quot: '"',
lt: ' gt: '>'
};
return function() {
return this.replace(/&([^&;]+);/g, function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}); //end of replace
};
} ();
document.write(''.deentityfy());
이 코드 는 JavaScript 의 String 대상 에 deentityfy 방법 을 추가 하여 문자열 의 HTML 문 자 를 바 꾸 는 것 입 니 다. ("바 꾸 기", 바 꾸 기 >)먼저, 우 리 는 작가 가 사용 하 는 언어 기 교 를 무시 하고 그의 replace 가 어떻게 사용 되 는 지 살 펴 보 겠 습 니 다. 첫 번 째 매개 변 수 는 정규 표현 식 입 니 다. 앞서 언급 한 세 개의 문자열 과 일치 합 니 다. 두 번 째 매개 변수의 function 에 두 개의 매개 변수 가 있 습 니 다. 이 두 매개 변 수 는 도대체 무엇 입 니까? 왜 방법 이 예상 한 결 과 를 얻 었 는 지 간단하게 분석 해 보 겠 습 니 다.
우선 entity [b] 는 JavaScript 관련 배열 의 용법 입 니 다. 배열 데이터 의 name 에 따라 value 를 얻 을 수 있 습 니 다. 이해 하기 편리 하도록 이 방법 을 바 꾸 어 간단하게 만 드 는 것 도 좋 습 니 다. function 의 매개 변수 가 무엇 인지 더욱 잘 볼 수 있 습 니 다. 또한 브 라 우 저 디 코딩 문 제 를 없 애기 위해 문자열 을 바 꾸 는 것 도 좋 습 니 다.
String.prototype.deentityfy = function() {
var entity = {
a: 'A',
b: 'B',
c: 'C'
};
return function() {
return this.replace(/1([^12])2/g, function(a, b) {
for (var i = 0; i < arguments.length; i++) {
document.write(arguments[i] + '
');
}
document.write('===========================
');
var r = entity[b];
return typeof r === 'string' ? r : a;
}); //end of replace
};
} ();
document.write('1a21b21c2'.deentityfy());
이렇게 해서 우 리 는 방법의 매개 변 수 를 모두 인쇄 해서 결과 가 무엇 인지 보 자.
a2
a
a21b21c2
===========================
b2
a21b21c2
===========================
c2
c
a21b21c2
===========================
ABC
이상 하 죠? 마지막 은 방법의 결과 입 니 다. 정확 합 니 다. 예상 한 결 과 를 얻 었 습 니 다. function 의 매개 변수 부분 을 보 여 주세요.
function 은 세 번 호출 되 었 습 니 다. 마침 일치 하 는 횟수 입 니 다. 매번 일치 하 는 문자열 을 바 꿉 니 다.
매번 호출 할 때마다 방법 은 네 개의 매개 변수 가 있다.
첫 번 째 매개 변 수 는 간단 합 니 다. 일치 하 는 문자열 입 니 다.
두 번 째 는 이상 하지만 한 번 씩 보면 얻 기 어렵 지 않 습 니 다. 두 번 째 매개 변 수 는 정규 표현 식 괄호 안에 있 는 일치 하 는 내용 입 니 다.
세 번 째 매개 변 수 는 문자열 에 일치 하 는 index 입 니 다.
네 번 째 매개 변 수 는 원래 문자열 입 니 다.
신기 하 죠? 그런데 그 렇 죠? 다시 써 보 겠 습 니 다.
var r = '1a21b21c2'.replace(/1\w2/g, function() {
for (var i = 0; i < arguments.length; i++) {
document.write(arguments[i] + '
');
}
document.write('===========================
')
return 'X';
});
document.write(r);
앞의 예 와 비슷 합 니 다. 모든 일치 하 는 항목 을 X 로 간단하게 바 꾸 고 결 과 를 보 세 요.
a2
a21b21c2
===========================
b2
a21b21c2
===========================
c2
a21b21c2
===========================
XXX
의외로 맞 는 지, 결 과 는 예 상 했 지만 매개 변수 가 하나 줄 었 습 니 다. 두 번 째 매개 변 수 는 보이 지 않 습 니 다. 도대체 어떤 차이 가 있 는 지 보 세 요. 정규 표현 식 에서 불필요 한 괄호 가 없어 진 것 같 습 니 다. 지난 예 에서 두 번 째 매개 변 수 는 괄호 안의 일치 항목 입 니 다. 두 번 째 매개 변 수 는 정규 표현 식 에서 괄호 안의 일치 항목 입 니까? 우 리 는 괄호 를 추가 합 니 다.돌아 와 서 검증 해 봐.
var r = '1a21b21c2'.replace(/1(\w2)/g, function() {
for (var i = 0; i < arguments.length; i++) {
document.write(arguments[i] + '
');
}
document.write('===========================
')
return 'X';
});
document.write(r);
결 과 를 보다
a2
a2
a21b21c2
===========================
b2
b2
a21b21c2
===========================
c2
c2
a21b21c2
===========================
XXX
아니 나 다 를 까, 이렇게 해서 우 리 는 function 에 도대체 어떤 매개 변수 가 있 는 지 알 게 되 었 습 니 다. 자 바스 크 립 트 언어의 정수 가 무 거 운 예 를 보면 알 게 되 었 습 니 다. 물론 우 리 는 관련 배열 을 알 아야 합 니 다. 즉시 함수, 폐쇄 와 arguments 대상 을 실행 해 야 합 니 다. 만약 에 한 마디 에 있 는 모든 단어의 이니셜 을 대문자 로 쓰 면 그 럴 수 있 습 니까?
// ,
var sentence = 'i love you';
var upper = sentence.replace(/(\w)\w*\b/g, function(a,b) {
return b.toUpperCase()+a.substring(1);
});
document.write(upper);
//
var sentence = 'i love you';
var upper = sentence.replace(/\w+\b/g, function(a) {
return a.substr(0,1).toUpperCase()+a.substring(1);
});
document.write(upper);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.