2010-04-29 72 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 
}