-4

我需要一个不允许连续出现多个特殊字符的正则表达式。

例如:

'this is a test' = 有效输入
'this, is a test' = 有效输入
'.......' = not valid input
'this,, is a test' = 无效输入

4

2 回答 2

5

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

var valid = !str.match(/[^a-z0-9\s]{2}/i);

更新后的规格:

对于这个,“特殊”字符是,._-'"

var valid = !str.match(/[-,._'"]{2}/i);
于 2012-06-12T17:18:02.030 回答
0

为什么需要正则表达式来执行此操作?

 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;
 }
于 2012-06-12T17:23:48.853 回答