Javascript Regex不允许一行中有多个特殊字符

Javascript Regex不允许一行中有多个特殊字符,javascript,regex,Javascript,Regex,我需要一个正则表达式,它不允许一行中有多个特殊字符 例如: “这是一个测试”=有效输入 '这是一个测试'=有效输入 “…..”=无效输入 “这是一个测试”=无效输入根据您定义“特殊字符”的方式,您可以使用: var valid = !str.match(/[^a-z0-9\s]{2}/i); 规格更新后: 对于这一个,“特殊”字符是,。-“ 为什么需要正则表达式来执行此操作 var is_special_character = function(ch) { ... } var is_v

我需要一个正则表达式,它不允许一行中有多个特殊字符

例如:

“这是一个测试”=有效输入
'这是一个测试'=有效输入
“…..”=无效输入

“这是一个测试”=无效输入

根据您定义“特殊字符”的方式,您可以使用:

var valid = !str.match(/[^a-z0-9\s]{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;
 }
var是特殊字符=函数(ch){…}
变量是有效的=函数(str){
var特殊字符=0;
对于(变量i=0;i1)返回false;
}
返回true;
}

您是否尝试过创建一个角色,或者您不知道如何开始?什么是“特殊”角色?我可能应该指出。对于这一个,“特殊”角色是不是特别的吗?Nor
}
.
ÿ
?也要定义
是不带正则表达式的特殊字符()
,然后与我的答案进行比较,你就会得到你问题的答案。;-)@Qtax,我可以定义
是特殊字符
而不需要正则表达式:)@Alexander:实际上相当容易(
specials.indexOf(ch)>=0
)@AarronH:注意,这会将类似
{{{
的字符串分类为“有效”。我首先让它通过另一个筛选器正则表达式,查看它是否包含a-zA-Z0-9和我列出的特殊字符。然后它将通过此筛选器查看一行中是否有多个“特殊”字符
 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;
 }