2015-10-08 32 views
1

第一個字母應該是字母/數字和正斜槓,除了&和|長整型值的正則表達式停止腳本錯誤

new RegExp('^[\/A-Za-z0-9](([^\|\&]?[a-zA-Z0-9]?)*)$'); 

以上爲正確的格式和最小字符e.g(/ABCD%*

正則表達式的工作,如果我給長字符e.g(/abcdabcdabcdabcdabcdabcdabcd &),停止在Firefox出現腳本錯誤。請提出一些更好的正則表達式修復它

Demo

+0

如果你告訴我們你想匹配什麼樣的字符串,會更好。 –

+0

@SalmanA只需看小提琴或帖子。他試圖與'/ abcdabcdabcdabcdabcdabcdabcd'匹配並且' – Magus

回答

4

你的問題是捕獲組(括號內)。擺脫這些,它很好。儘可能簡單!

首字母應該是字母/數字[或]正斜槓

^[/A-Za-z0-9] 

每一個特殊字符被允許,除了&和|

[^|&]+ 

(你不需要逃避|&。)

將其組合在一起:

^[\/A-Za-z0-9][^|&]+$ 

試試吧here

+0

除了捕獲組之外,原始正則表達式還存在潛在的災難性回溯問題。 –

+0

不需要轉義'/'(在第一個括號內)。 – Amit

+0

哦,是啊!我一直以爲你做到了...... :) – benshepherd