我已經寫了驗證名稱一些代碼,無論它albhabet 它會拋出錯誤,如果沒有albhabet 下面的代碼應該顯示錯誤,但它不顯示錯誤消息名稱應該albhabet只
var nameExpression = '/^[a-zA-Z]/';
var name = 'hello123';
if (!nameExpression.test(name))
alert('Error:Please enter the valid name');
我已經寫了驗證名稱一些代碼,無論它albhabet 它會拋出錯誤,如果沒有albhabet 下面的代碼應該顯示錯誤,但它不顯示錯誤消息名稱應該albhabet只
var nameExpression = '/^[a-zA-Z]/';
var name = 'hello123';
if (!nameExpression.test(name))
alert('Error:Please enter the valid name');
var nameExpression = /^[a-zA-Z]+$/;
var name = 'hello123';
if (!nameExpression.test(name))
alert('Error:Please enter the valid name');
說明: 1.nameExpression不應該是字符串 2.您應使用結束分隔符如'$' 例如 var nameExpression =/^ [a-zA-Z] $ /;
從各地正則表達式litteral刪除引號。否則,它只是一個字符串,而不是RegExp。
添加$
到底(/^[a-zA-Z]$/
),使其只匹配是完全由ASCII字母,而不僅僅是開始與他們的字符串。哦,謝謝帕夫洛和詹姆斯,錯過了那一個。添加Kleene加號(+
),以便它匹配不僅僅是一個信更多:/^[a-zA-Z]+$/
額外提示:如果你解析真實姓名,而不是代碼,那麼你應該期待非ASCII字母。你有點擰,因爲JavaScript的正則表達式不支持Unicode還沒有,但這是一個開始:
/^[^\s\d]+$/i
您的正則表達式意思是「以小寫或大寫拉丁字母開頭」,所以hello123會匹配。 – Pavlo
'var str =「Hello World!」; var res = str.toUpperCase();'你爲什麼試試這個... –
你應該說英文字母,如果這就是你的意思。 (而且,如果你正在談論限制一個人的名字,那麼你將會疏遠很多人 - 包括說英語的人。) –