試圖驗證一串文本。規則是:如果存在超過3個字母或2個特殊字符,則表示正則表達式失敗
- 只能有字母,數字,特殊(包括空格)
- 不能有超過3個字母字符連續
- 不能有2個以上的特殊字符連續
的如果正則表達式匹配,驗證應該失敗。
另外,這些工作,但我一直無法將它們正確地結合起來:
/^[^\x20-\x7F]+$/
- Regular expression to match all characters on a U.S. keyboard
/^(\w)\1{3,}$/
- Regex for detecting the same character more than five times?
無效的例子:
- Thiiis會失敗。
- 這將使222失敗2次。
- !!也是不允許的。
用例不允許用戶在市場上發佈帖子(想想Craigslist)。
正則表達式引擎是Javascript在AngularJS指令。
加分:我還想讓用戶知道在字符串中失敗了什麼。目前,我做的是對單個字符,但不知道如何以最佳方式輸出連續失敗字符「!無效」:
當前工作代碼段:
var alphaNumeric = /^[^0-9a-zA-Z\- ]+$/;
var charArray = new Array();
for (var i = 0; i < userstring.length; i++) {
if (alphaNumeric.test(userstring[i])) {
charArray.push(userstring[i]);
}
}
var errorMsg = charArray.join().toString() + " are invalid characters.";