2010-04-29 70 views
0

有什么方法可以找到哪个输入字符失败正则表达式模式javascript正则表达式验证

例如:考虑[A-Za-z \ s。 &]只允许使用,但用户输入类似“test/string”,其中“/”使输入无效。 如何找到谁失败的正则表达式(我们的情况下,“/”)

+0

所有的答案都不错。 RoToRa完全符合我的需求。谢谢你 – ArK 2010-04-29 10:50:47

回答

2

您可以删除有效字符,你就会有无效问卷的字符串:

var invalid = "test/string".replace(/[A-Za-z\s.&]/g,""); // results in "/" 
1

要查找的字符失败,与/[A-Za-z\s.&]+/拆分它,你会得到无效字符列表

"test/string".split(/[A-Za-z\s.&]+/).join('') 
/

要检查用户名是否有效或者不,你可以使用^和$锚。

/^[A-Za-z\s.&]+$/ 
+0

我觉得他有这个部分,但他想知道为什么比赛失败了。即在哪个角色上。 – 2010-04-29 10:14:38

+0

谢谢@Tim,更新 – YOU 2010-04-29 10:18:19

1

只是否定你的角色类并找出哪个角色匹配。

[^A-Za-z\s.&] 

将匹配test/string/。所以,干脆你

if (/^[A-Za-z\s.&]+$/.test(subject)) { 
    // Successful match 
} else { 
    result = subject.match(/[^A-Za-z\s.&]/g); 
    // result is an array that contains all the characters that failed the match 
}