我需要一个不允许连续出现多个特殊字符的正则表达式。
例如:
'this is a test' = 有效输入
'this, is a test' = 有效输入
'.......' = not valid input
'this,, is a test' = 无效输入
我需要一个不允许连续出现多个特殊字符的正则表达式。
例如:
'this is a test' = 有效输入
'this, is a test' = 有效输入
'.......' = not valid input
'this,, is a test' = 无效输入
根据您定义“特殊字符”的方式,您可以使用:
var valid = !str.match(/[^a-z0-9\s]{2}/i);
更新后的规格:
对于这个,“特殊”字符是
,._-'"
var valid = !str.match(/[-,._'"]{2}/i);
为什么需要正则表达式来执行此操作?
var is_special_character = function(ch) { ... }
var is_valid = function(str) {
var special_characters = 0;
for(var i = 0; i < str.length; i++) {
if(is_special_character(str[i]))
special_characters++;
else
special_characters = 0;
if(special_characters > 1) return false;
}
return true;
}