2013-10-02 33 views
2

我需要擺脫字符串中的「↵」字符,但是我從RegExp中得到了一些奇怪的行爲。有人可以解釋這一點:爲什麼Javascript RegExp測試給這個角色的unicode值「false」?

var str = "↵Since we are starting our webservice..."; 

alert(str.charAt(0)) 
alert(str.charCodeAt(0)); 

alert(/\u8629/.test("↵")); 

http://jsfiddle.net/SXYAn/1/

String對象的方法告訴我,Unicode代碼爲「↵」是8629,但正則表達式表示,情況並非如此。

+0

爲什麼不''alert(/↵/g.test(str));'? –

+0

這只是告訴我,字符存在於我的字符串中,而且我已經知道了。我必須做的是替換(/ \ ug/gm,''),但這不起作用,因爲RegExp的行爲如此。 – Zemljoradnik

回答

6

您將charCode返回爲十進制數,並且在regEx中測試時需要使用十六進制數。

8629 = 0x21b5。

我用this弄明白了。

+1

[正確](http://jsfiddle.net/SXYAn/2/) – Emissary

+1

您,先生,剛剛救了一個程序員的生命。 RegExp使用的正確unicode是\ u21b5。 – Zemljoradnik