2011-08-05 6 views
0

regexp : var s = document.getElementById ("username"). 값; if s == "\ \ \ \"; var 결과 = s.replace (/ \/g, "")가 잘못 되었습니까? 왜 그 방화범이 틀렸어? 결과에JavaScript 대체 문자열

희망 == "에 해당되는"하지만 방화 광 출력 =

구문 에러 {소스 "로 (_FirebugCommandLine) {("\ \ ") 교체 (/ (\)/g. \ n}; ", 메시지 ="끝나지 않은 문자열 리터럴 ", fileName ="리소스 : //firebug_rjs/console/commandLineExposed.js ", more ...}

왜 그럴까요? 도와주세요?

답변

2

\는 특수 문자입니다. See Special Characters in Javascript.

\을 탈출해야합니다.

("\\ \\").replace(/(\\)/g,""); 

작동해야합니다.

그런데 regEx 일치에서 무엇을하려고합니까?

+2

@kevin Peng, 달성하려는 것은 무엇입니까? – Nivas

0

당신은 백 슬래시를 이스케이프해야합니다

t = ("\\\\").replace(/(\\)/g,""); 
0

당신은 문자열에서 백 슬래시를 탈출하지 않았기 때문에.

종료 인용 문자열이 다음에 인용 될 때까지 끝나지 않도록 인용 문자열의 일부, 대신 그래서 코드가 포함되어 있다는 것을 의미하기 전에 백 슬래시 :

  • (
  • 문자열을 내용 ").replace(/(\\)/g,
  • 종료 인용
학사 탈출

누락 된 내용 );와 문자열 를 두배로 ckslashes : 당신이 \/ = "/" 문자열을 작성하는 경우는 주석으로 // 그 것 마크 .... 를 작성하는 경우

("\\ \\").replace(/(\\)/g,""); 
0

\ 기호는 ... 그래서

\n = newline; 
\t = tabspace; 
\\ = "\" symbol; 

정규 표현식입니다. . 그러나 지금 당신은 당신이해야합니다 .. 그래서 다음 단어가 닫을 수 없습니다, \/=/이 문자열로 표시합니다 ... "(/ \/gi)을 대체 ...."쓰기

var s = document.getElementById("username").value; 
if(s.search("\ \ \ \")>=0){ 
    s.replace(/\\/g,""); 
} 
,536,

\ 의미 \

관련 문제