[javascript] JavaScript를 사용하여 문자열의 모든 점을 바꾸는 방법
.
JavaScript 문자열에서 모든 dot ( ) 을 바꾸고 싶습니다.
예를 들어, 나는 :
var mystring = 'okay.this.is.a.string';
나는 얻고 싶다 : okay this is a string
.
지금까지 나는 시도했다 :
mystring.replace(/./g,' ')
그러나 이것은 모든 문자열을 공백으로 바꿉니다.
답변
.
정규 표현식에서 “임의의 문자”라는 의미를 갖기 때문에 이스케이프해야합니다 .
mystring = mystring.replace(/\./g,' ')
답변
이해하기 쉬운 하나 이상의 솔루션 🙂
var newstring = mystring.split('.').join(' ');
답변
/**
* ReplaceAll by Fagner Brack (MIT Licensed)
* Replaces all occurrences of a substring in a string
*/
String.prototype.replaceAll = function( token, newToken, ignoreCase ) {
var _token;
var str = this + "";
var i = -1;
if ( typeof token === "string" ) {
if ( ignoreCase ) {
_token = token.toLowerCase();
while( (
i = str.toLowerCase().indexOf(
_token, i >= 0 ? i + newToken.length : 0
) ) !== -1
) {
str = str.substring( 0, i ) +
newToken +
str.substring( i + token.length );
}
} else {
return this.split( token ).join( newToken );
}
}
return str;
};
alert('okay.this.is.a.string'.replaceAll('.', ' '));
정규식을 사용하는 것보다 빠릅니다 …
편집 :
어쩌면이 코드를 수행 할 때 jsperf를 사용하지 않았습니다. 그러나 결국 그러한 논의는 전혀 의미가 없으며 성능 차이는 실제 코드의 가독성에 가치가 없으므로 성능이 정규식 접근 방식과 다르더라도 여전히 내 대답은 유효합니다.
EDIT2 :
유창한 인터페이스를 사용 하여이 작업을 수행 할 수있는 lib를 만들었습니다.
replace('.').from('okay.this.is.a.string').with(' ');
https://github.com/FagnerMartinsBrack/str-replace를 참조 하십시오 .
답변
str.replace(new RegExp(".","gm")," ")
답변
이 간단한 시나리오의 경우 Javascript에 내장 된 메소드를 사용하는 것이 좋습니다.
당신은 이것을 시도 할 수 있습니다 :
"okay.this.is.a.string".split(".").join("")
인사말
답변
점에 이중 백 슬래시를 추가하여 작동시킵니다. 격려.
var st = "okay.this.is.a.string";
var Re = new RegExp("\\.","g");
st = st.replace(Re," ");
alert(st);
답변
이것은 더 간결하고 읽기 쉬우 며 Fagner Brack이 게시 한 것보다 더 잘 수행되어야합니다 (toLowerCase는 루프에서 수행되지 않음).
String.prototype.replaceAll = function(search, replace, ignoreCase) {
if (ignoreCase) {
var result = [];
var _string = this.toLowerCase();
var _search = search.toLowerCase();
var start = 0, match, length = _search.length;
while ((match = _string.indexOf(_search, start)) >= 0) {
result.push(this.slice(start, match));
start = match + length;
}
result.push(this.slice(start));
} else {
result = this.split(search);
}
return result.join(replace);
}
용법:
alert('Bananas And Bran'.replaceAll('An', '(an)'));