JavaScript에는 replace()
하위 문자열을 대체하기위한 String 객체의 메소드가 있습니다. 이 방법에는 두 가지 인수가있을 수 있습니다. 첫 번째 인수는 문자열 또는 정규식 패턴 (regExp 객체) 일 수 있고 두 번째 인수는 문자열 또는 함수일 수 있습니다. replace()
두 문자열 인수를 모두 갖는 메소드 의 예 는 다음과 같습니다.
var text = 'one, two, three, one, five, one';
var new_text = text.replace('one', 'ten');
console.log(new_text) //ten, two, three, one, five, one
첫 번째 인수가 문자열 인 경우, 위의 예에서와 같이 첫 번째 부분 문자열 만 바뀝니다. 모든 부분 문자열을 바꾸려면 정규 표현식에 g
(전역) 플래그 를 제공해야합니다 . 전역 플래그를 제공하지 않으면 정규식을 첫 번째 인수로 제공하더라도 첫 번째 부분 문자열 만 대체됩니다. one
위의 예에서 모든 항목을 바꾸겠습니다 .
var text = 'one, two, three, one, five, one';
var new_text = text.replace(/one/g, 'ten');
console.log(new_text) //ten, two, three, ten, five, ten
정규식 패턴을 따옴표로 묶지 않으면 regExp 객체가 아닌 문자열이됩니다. 대소 문자를 구분하지 않고 교체하려면 i
패턴을 대소 문자를 구분하지 않는 추가 플래그를 제공해야합니다 . 이 경우 위의 정규식은입니다 /one/gi
. 주목i
여기에 추가 플래그를 확인하십시오.
두 번째 인수에 함수가 있고 일치하는 경우 세 개의 인수와 함께 함수가 전달됩니다. 함수가 얻는 인수는 일치, 일치 위치 및 원본 텍스트입니다. 일치하는 항목으로 교체해야합니다. 예를 들어
var text = 'one, two, three, one, five, one';
var new_text = text.replace(/one/g, function(match, pos, text){
return 'ten';
});
console.log(new_text) //ten, two, three, ten, five, ten
함수를 두 번째 인수로 사용하여 대체 텍스트를보다 세밀하게 제어 할 수 있습니다.
str_replace
도 PHP 는 동일한 길이의 두 배열을 받아들입니다. 첫 번째 배열의 각 문자열은 같은 인덱스에서 두 번째 배열의 문자열로 바뀝니다. Javascript 에서이 정확한 동작을 모방 한 지금까지 찾은 올바른 기능에 대해서는 stackoverflow.com/a/5069776/296430 을 참조하십시오 .