快速問題:我需要允許輸入只接受字母,從a到z和從A到Z,但找不到任何表達式。我想使用javascript test()方法。javascript正則表達式:只允許英文字母
回答
另一種選擇是使用case-insensitive flag i,那麼不需要額外的字符範圍A-Z。
var reg = /^[a-z]+$/i;
console.log(reg.test("somethingELSE")); //true
console.log("somethingELSE".match(reg)[0]); //"somethingELSE"
下面是關於這個表達式與測試是如何工作的DEMO()和匹配()。
只是爲了澄清,當這個表達式有其他的時候,這個表達式是否會返回null,比如說'&'字符存在?如果只有英文字母,那麼它會返回輸入本身? – MadPhysicist 2016-07-23 16:18:59
@MadPhysicist TLDR;是。說明:如果沒有匹配,使用'string.match(regex)'將返回null,否則返回一個匹配字符串數組。由於這個正則表達式匹配從字符串('^')開頭到字符串末尾(''')的所有內容,所以這裏的match()將返回整個字符串或null。查看我的[DEMO](https://jsfiddle.net/shawn1/ebuno94c/)以獲得'regex.test(string)'或'string.match(regex)'的用法。 – 2016-07-24 00:09:44
@MadPhysicist澄清:匹配()這裏實際上返回一個數組與整個字符串在零索引。 – 2016-07-24 00:25:45
如果你不介意這些特殊字符("[", "\", "]", "^", "_", "`"
),你也可以這樣做:
/^[A-z]+$/.test('string')
var matches = [], special = [];
// Test ASCII characters (0-255)
for (var i=0,n=255; i < n; i++){
var char = String.fromCharCode(i); // get character
if (/[A-z]/.test(char)){
matches.push(char);
if (!/[a-zA-Z]/.test(char))
special.push(char);
}
}
console.log('matches: ', matches);
console.log('special characters: ', special);
發表評論,如果你沒有看到!/[a-zA-Z]/.test(char)
,需要知道誰將來從協助中刪除;)
- 1. JavaScript中不允許非英文字符的正則表達式
- 2. 正則表達式只允許字母,空格和 - 只有
- 3. 正則表達式屬性,只允許字母數字字符
- 4. 只允許字母和正斜槓的正則表達式
- 5. 正則表達式只允許字符
- 6. 正則表達式只允許字母數字
- 7. 只允許某些非字母字符在正則表達式
- 8. 正則表達式只允許字母和數字
- 9. 只允許一個字母字符 - 正則表達式
- 10. 只允許首字母大寫字符串(正則表達式)
- 11. JavaScript的正則表達式,允許字母數字和點(。)
- 12. 正則表達式只允許字母,單個空格和「 - 」
- 13. 正則表達式:允許字母和逗號之間只有
- 14. 正則表達式,它只允許沒有口音的字母
- 15. 正則表達式javascript只允許數字,字母和下劃線
- 16. 只允許在文本框中使用英文字符的正則表達式
- 17. 正則表達式只允許負數
- 18. 正則表達式只允許在
- 19. UITextField只允許英文字母輸入
- 20. 正則表達式只允許一組特定的字符(Javascript)?
- 21. javascript的正則表達式,只允許數字和逗號
- 22. 只有英文和數字字符的Javascript正則表達式
- 23. 正則表達式,以允許用戶只輸入文本,而不是字母
- 24. 允許正則表達式
- 25. php正則表達式數字和字母不允許只是數字
- 26. 正則表達式允許一個特殊字符(:)和數字和字母只
- 27. 正則表達式只允許字母,數字和至少兩個字符
- 28. 正則表達式,允許字母數字和點
- 29. 正則表達式在C#允許數字和字母
- 30. 正則表達式允許字母,數字和換行
什麼世界是三年前 – rook 2013-09-11 10:02:44