我一直在嘗試使用JavaScript驗證表單的內容。我需要檢查'姓名'字段是否只包含字符和空格。如果有其他角色出現,我想顯示警報。這在C和Java中很容易實現,但我似乎無法在JavaScript中找到好的替代品。我讀過正則表達式,但沒有更簡單的選擇,有點像內置函數?isalpha替換爲JavaScript?
0
A
回答
4
使用正則表達式當然更容易爲:
//Check for non-alphabetic characters and space
if(name.search(/[^A-Za-z\s]/) != -1)
alert("Invalid name");
使用for循環:
//charCodeAt() gets the char code in a string
//Upper and lower bounds for upper case characters
var upperBoundUpper = "A".charCodeAt(0);
var lowerBoundUpper = "Z".charCodeAt(0);
//Upper and lower bounds for lower case characters
var upperBoundLower = "a".charCodeAt(0);
var lowerBoundLower = "z".charCodeAt(0);
for (var i = 0; i < name.length; i++) {
var char = name.charCodeAt(i);
if (char <= upperBoundUpper && char >= lowerBoundUpper)
continue;
else if (char <= upperBoundLower && char >= lowerBoundLower)
continue;
//Check for space
else if (name[i] == " ")
continue;
else{ //Not recognized character - not valid
alert("Invalid name");
break;
}
}
jsPerf測試相對速度:http://jsperf.com/checking-is-alphabetic
在我的測試中,for循環運行速度更快。
4
不,我不知道。
雖然可以使用
/^[ a-z]+$/i.test(string)
不像isalpha
模仿最基本的isalpha
的功能,這不是語言環境感知,僅適用於簡單和拉丁字母,就等於迫使isalpha
運行在C
區域設置中。
+0
我認爲這樣會工作,但我認爲會有某種更簡單方式(ASCII轉換和for循環,也許?)。我是javascript的noob,我還沒有學習如何將文本轉換爲他們的ASCII表示 – forkexec
+0
我不認爲空間被認爲是alpha。 –
相關問題
- 1. Javascript替換爲
- 2. 。替換爲JavaScript/jQuery
- 3. Javascript替換方法,替換爲「$ 1」
- 4. 。替換爲Javascript替換多個字符
- 5. 將JavaScript undefined替換爲null
- 6. Javascript Methodname被替換爲!==
- 7. Javascript - 用undefined替換爲0
- 8. JavaScript替換爲增量
- 9. 全部替換爲javascript
- 10. 的Javascript替換爲等號
- 11. 替換爲RegEx和JavaScript
- 12. 多個替換爲javascript
- 13. Javascript替換不會替換
- 14. javascript全部替換爲javascript表達式?
- 15. 轉換JavaScript替換爲PHP preg_replace或str_replace
- 16. JavaScript替換
- 17. 替換javascript值
- 18. 替換的JavaScript
- 19. Javascript替換
- 20. iOS Javascript替換\「
- 21. Javascript。替換Div
- 22. Javascript替換?
- 23. RegEx Javascript替換?
- 24. JavaScript Prototype.js替換
- 25. 替換的JavaScript
- 26. javascript:替換linebreak
- 27. JavaScript替換
- 28. Regexp Javascript替換
- 29. JavaScript RegExp替換
- 30. Python isalpha()和scandics
「只有字符和空格」是什麼意思? – Gumbo
空格是字符,文本輸入不能包含除字符以外的任何內容。我認爲你需要改寫。 – Quentin
對不起,我的意思是字母:) – forkexec