我有一个字符串要使用 javascript Regex 进行验证。该字符串可以单次出现任何不同的特殊字符。我尝试了以下模式。
/^[A-Za-z0-9]*[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]?[A-Za-z0-9]*$/
但它允许任意两个不同的特殊字符。但根据我的情况,它应该允许每个特殊字符一次(例如,可以接受一次出现“&”和“%”,但不允许两次出现“&”或任何其他字符)。请帮忙。
最佳答案
^(?!.*([!$%^&*()_+|~=`{}\[\]:";'<>?,.\/-]).*\1)[!$%^&*()_+|~=`{}\[\]:";'<>?,.\/A-Za-z0-9-]+$
试试这个。这将允许 特殊字符
0 或更多
但不会有相同的`特殊字符两次。参见演示。
https://regex101.com/r/bW3aR1/5
var re = /^(?!.*([!$%^&*()_+|~=`{}\[\]:";'<>?,.\/-]).*\1)[!$%^&*()_+|~=`{}\[\]:";'<>?,.\/A-Za-z0-9-]+$/gm;
var str = 'abc12*$%\nabcd12324';
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.
}
关于Javascript 正则表达式验证特殊字符的单次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071576/