Javascript Regex to validate single occurrence of special characters
我有一个字符串要使用javascript regex进行验证。字符串可以有任何不同的特殊字符的一次出现。我尝试了以下模式。
1 | /^[A-Za-z0-9]*[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]?[A-Za-z0-9]*$/ |
但它允许任何两个不同的特殊字符。但根据我的方案,它应该允许每个特殊字符一次出现(例如,可以接受一次出现"&;"和"%",但不允许出现两次出现"&;"或任何其他字符)。请帮忙。
1 | ^(?!.*([!$%^&*()_+|~=`{}\[\]:";'<>?,.\/-]).*\1)[!$%^&*()_+|~=`{}\[\]:";'<>?,.\/A-Za-z0-9-]+$ |
试试这个。这将允许
网址:https://regex101.com/r/bw3ar1/5
1 2 3 4 5 6 7 8 9 10 11 12 | var re = /^(?!.*([!$%^&*()_+|~=`{}\[\]:";'<>?,.\/-]).*\1)[!$%^&*()_+|~=`{}\[\]:";'<>?,.\/A-Za-z0-9-]+$/gm; var str = 'abc12*$% abcd12324'; var m; while ((m = re.exec(str)) != null) { if (m.index === re.lastIndex) { re.lastIndex++; } // View your result using the m-variable. // eg m[0] etc. } |
号
哎呀,这不对
不应该是这样的。您有一些相当复杂的东西,请尝试将regex简化为:
(
看看它是否仍然不起作用