2014-02-25 32 views
2

我的javascript正則表達式工作不正常。Javascript正則表達式匹配轉義html字符碼

我想檢測A-Z,a-z,0-9,WHITESPACE和'_ - 。

問題是:apostroph逃脫。因此,它'

所以DJ Blubeispiel - I'm Walking In The Darkness.mp3

成爲DJ Blubeispiel - I'm Walking In The Darkness.mp3

如何檢測逃脫APOSTROPH?


這裏是我的正則表達式:

var regex = /^[A-Za-z0-9\s\(\)\.'_-]{1,}$/; 

正則表達式正在尋找'而不是'

回答

3

嘗試這種情況:

regex = /^([\w\s.-]|')+$/ 

\w表示任何「字」字符,其中既包括大寫和小寫字母,數字和下劃線。 |是一個交替,它將首先嚐試將模式與右側(周圍組內)進行匹配,如果失敗,則嘗試將模式匹配到右側。 +只是{1,}的縮寫形式。

因此,它匹配由單個字符,空白字符,句號或連字符或序列'的一個或多個實例組成的任何字符串。

+0

您好p.s.w.g - 感謝您的快速回復。你的正則表達式工作正常,但只有沒有擴展。 「DJ Blubeispiel - I ' m Walking in The Darkness」的作品,但是「DJ Blubeispiel - I ' m Walking In The Darkness.mp3」不工作:) – Steven

+1

@SteveMuster起初,我忽略在字符類中加入'.' ,但我已經更新了它。請現在試試。 –

+0

非常感謝!令人驚喜。感謝您使正則表達式更小,並感謝您對'問題的幫助:) |結果:http://puu.sh/7asM5.png – Steven