2012-10-03 3 views
1

내가 수정하고자하는 웹 사이트는 수정하고 싶은 텍스트가 있습니다. 텍스트에 유니 코드 문자가있는 것 같습니다. 내가 화면에 볼 또는 jQuery로 변수를 추출 할 때, 은 다음과 같이 보이는 :자바 스크립트에서 유니 코드 문자를 스트립 (또는 정규 표현식 일치)하는 방법은 무엇입니까?

2 others

을 그러나, 나는 같은 텍스트 내 자신의 변수를 만든 다음 비교를 할 경우 그들은 거짓으로 나타납니다. 그래서 복사/정력에 사이트의 텍스트를 붙여 그것은 다음과 같습니다

2<200e> others

최저 나는이 공간에 대한 유니 코드 문자 말할 수있다 (?). 나는 같은 정규식이 문자열과 일치 할 수 있도록하려면 :

^(\d+(?:,\d+)*)\s+(.*)

하지만 실패 내장 된 유니 코드 문자와 문자열에

. (그것은 '2 others'의 내 자신의 입력 된 텍스트에서 잘 작동합니다).

이 유니 코드를 텍스트에서 제거 할 수있는 방법이 있습니까?

text.replace('\u200e\','')

text.replace('200e','')

text.replace('\%20','')

text.replace('\%u200e','')

또는 대안 나도 '두 사람'또는 일치하도록 내 정규식을 조정할 수 있습니다 나는 아무 소용이 다음 시도 임베디드 된 200e 유니 코드 문자가있는 동일한 텍스트?

답변

4

대신 실제 정규식을 사용하십시오.

text = text.replace(/\u200e/g, ''); 

나는 내 정규식 '이 다른 사람 또는 내장 200E 유니 코드 문자와 같은 문자 중 하나와 일치하도록 조정할 수 있습니다?

정규 표현식의 \s을 U + 200E도 포함하도록 변경할 수 있습니다 (예 :

^(\d+(?:,\d+)*)[\s\u200e]+(.*) 
+0

흠. 작동하지 않습니다. 예 : http://jsfiddle.net/forgetcolor/HDzvP/ 잘못된 유니 코드가있을 수 있습니까? – mix

+0

@mix : 유니 코드가 맞지만 결과를 변수에 다시 지정하지 않았습니다. **. replace는 변경 가능한 메소드가 아닙니다 **. "** text = ** text.replace (...)"라고 적어 두었습니다. http://stackoverflow.com/questions/7718851/javascript-replace-has-no-effect도 참조하십시오. – kennytm

+0

ack, 내 잘못입니다. 고마워!! – mix

관련 문제