2016-10-27 5 views
-1

문자열에서 백 슬래시를 간단하게 대체하려고합니다. 그래서 string.replace 메서드를 사용하여 백 슬래시를 제거하기위한 정규식을 전달했습니다 \.백 슬래시 문자를 세미콜론으로 바꾸는 방법은 무엇입니까?

EMEA 이후에 백 슬래시를 콜론 : 문자로 바꾸는 대신이 방법을 호출했을 때 눈치 챘습니다. 그것은 단지 사용자 이름의 첫 글자를 제거합니다.

나는 JSFIddle of the code here을 만들었습니다. 그렇게 대답 여기에 다른에서 제안됩니다으로 정규식 작동하지 않는 이유

확실하지 :

Replace all backslashes in a string with a pipe

질문 :

가 어떻게 세미콜론 백 슬래시 문자를 대체 할 수 있습니까?

코드 요점 :하지 정규식으로, 원래 문자열에 문제의

var str = "EMEA\victorb"; 
str = str.replace(/\\/g, ':'); 

document.write(str); 
+3

' var str = "EMEA \ victorb";는 백 슬래시를 포함하지 않습니다. ['var str = "EMEA \\ victorb";'does] (https://jsfiddle.net/x7t4v2wg/2/). –

+0

좋아요. 'EMEA'와'victorb' 사이에'\'문자는 무엇입니까? 나는 이것이 백 슬래시라고 생각했다. –

+0

백 슬래시는 JS 문자열 상수 내에서 특별한 의미가 있습니다. 참조 : http://www.javascriptkit.com/jsref/escapesequence.shtml –

답변

3

: 그것은 마땅한 때

var str = "EMEA\victorb"; 

입니다 :

var str = "EMEA\\victorb"; 
+0

API에서 반환 된 원래 문자열에는 백 슬래시가 하나만 포함됩니다. 하나의 백 슬래시 발생을 대체 할 방법이 없습니까? –

+1

API가 백 슬래시를 반환하면 자동으로 문자열로 인코딩됩니다. 두 개의 백 슬래시는 문자열 상수를 인코딩 할 수 있도록하기위한 것입니다. 실제 API 데이터에서 대체 메소드를 시도하고 API 데이터가 무엇을하는지보십시오. – creeperdomain

+1

아 좋아, 네가 말했듯이 이중 백 슬래시가있다. 라이브 API로 시도했습니다. –

0
var str = "EMEA\\victorb"; 
    str = str.replace("\\", ':'); because if you let just one \ it will be ignored. 
관련 문제