- N +

js正則表達式匹配數字和字母?js只能輸入數字和字母

大家好,js正則表達式匹配數字和字母相信很多的網友都不是很明白,包括js只能輸入數字和字母也是一樣,不過沒有關系,接下來就來為大家分享關于js正則表達式匹配數字和字母和js只能輸入數字和字母的一些知識點,大家可以關注收藏,免得下次來找不到哦,下面我們開始吧!

如何用正則表達式驗證只能輸入數字

假設你的html為:你可以用test的方法去判斷:varreg=/^[0-9a-zA-Z]+$/alert("你輸入的字符不是數字或者字母")}你可以用onchange或者onkeyup來觸發。擴展資料:js日常用途:

1.嵌入動態文本于HTML頁面。

2.對瀏覽器事件做出響應。

3.讀寫HTML元素。

4.在數據被提交到服務器之前驗證數據。

5.檢測訪客的瀏覽器信息。

6.控制cookies,包括創建和修改等。

7.基于Node.js技術進行服務器端編程。

js正則表達式之match函數講解

match就是這樣匹配的,第一個匹配到的內容,然后匹配到的子表達式,然后第二個匹配到的子表達式。。。

js正則表達式怎么匹配英文和空格

漢字的Unicode編碼范圍為\u4E00-\u9FA5\uF900-\uFA2D,[\u4E00-\u9AF5\uf900-\ufa2da-zA-Z]匹配一個漢字或大小寫字母,{5,10}指符合前面匹配要求的5至10個,i表示不區分大小寫字母,g表示全局匹配,如果沒加這會匹配第一個符合條件的。所以這個正則表達式是匹配字符串中所有連續5個至10個漢字或字母。

數字和字母混搭怎么區分

驗證字符串包含數字簡單,驗證字符串包含字母也簡單,驗證字符串不包含其它字符也簡單,可以用這三個正則分別檢查一次字符串,邏輯運算出最終結果。

但是怎么能把這些功能寫進一個正則表達式里呢?這個問題真有點傷腦筋。

下面是lexrus的正則:

/^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig

思路非常的清晰啊:

[a-z]+(?=[0-9])

字母開頭,后面必須緊跟著數字。

[0-9]+(?=[a-z]

數字開頭,后面必須緊跟著字母。

[a-z0-9]+

后面的字符只要是數字或者字母就可以了。經過測試,發現不好使,123dd會被識別為不合法,dd123則為合法,可見“數字開頭,緊跟字母”的正則沒有起作用。測試代碼如下:

<scripttype="text/javascript">

functionistrue(str){

varreg=/^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig;

returnreg.test(str);

}

varstr?='AaBc';

varstr2='aaa123';

varstr3='123dd';

varstr4='1230923403982';

document.write(istrue(str)+'<br/>');

document.write(istrue(str2)+'<br/>');

document.write(istrue(str3)+'<br/>');

document.write(istrue(str4)+'<br/>');

</script>

結果為:

false,true,false,false

結果中的第三個,將'123dd'判斷為非法是錯誤的。剛開始以為是g的問題,去掉了還是不好使。應該是瀏覽器bug,我認為lexrus的正則是正確的,可能是瀏覽器無法處理或”|”的兩邊都包含正向預查(?=)。

修改之后的正則如下:

/^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i

意思和上面差不多,但是沒有使用正向預查,測試代碼如下:

<scripttype="text/javascript">

functionistrue(str){

varreg=/^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i;

returnreg.test(str);

}

varstr?='AaBc';

varstr2='aaa123';

varstr3='123dd';

varstr4='1230923403982';

document.write(istrue(str)+'<br/>');

document.write(istrue(str2)+'<br/>');

document.write(istrue(str3)+'<br/>');

document.write(istrue(str4)+'<br/>');

</script>

結果為

false,true,true,false

正確。

js正則表達式與關系

/(?=.*1)(?=.*2)/

/(?=.*1)(?=.*2)/.test(a)//false

/(?=.*1)(?=.*2)/.test(c)//false

/(?=.*1)(?=.*2)/.test(z)//true

/(?=.*1)(?=.*2)/.test(x)//true

意思應該很好理解的

(?=exp)匹配exp前面的位置.匹配除換行符以外的任意字符

*重復零次或更多次

組合起來,

第一段匹配字符中含有1,

第二段匹配字符中含有2,

由于使用了.*所以1或者2出現的位置與次數不限,

同時滿足第一段與第二段匹配則成立。

文章分享結束,js正則表達式匹配數字和字母和js只能輸入數字和字母的答案你都知道了嗎?歡迎再次光臨本站哦!

返回列表
上一篇:
下一篇: