[英]JS regular expression confusion
首先,道歉。 我需要創建一個測試來檢查輸入字段的值。
我目前使用/[^A-Za-z0-9 ]/.test(document.form.Serial.value)
來測試Serial的值是否僅為字母數字。
現在,如果設置了其他字段,則Serial必須為'i'或'I',則其余字符必須全部為數字。 我曾考慮過使用子字符串來執行此操作,但是這似乎有點長且不必要。
人們可以提供的任何建議將不勝感激!
如果要測試字符串是否以i或I開頭,然后僅包含數字,則可以使用如下正則表達式:
/^[iI][0-9]+$/
或者,對於不區分大小寫的匹配:
/^i[0-9]+$/i
基本上,這將匹配:
^
i
[0-9]
[0-9]+
$
您可以嘗試下面的代碼
var test_value = false
if (document.form.Additional_Field.value) {
test_value = /^(i|I)[0-9]+/.test(document.form.Serial.value) }
else {
test_value = /[A-Za-z0-9]+/.test(document.form.Serial.value) }
它會導致test_value設置為真 ,如果串行是字母數字或如果Additional_Field具有真值和串行其中i開始或I通過任何數量的數字休耕,和test_value否則設置為false。
為什么不分解問題。 您有兩個有效的輸入,因此用於語法檢查輸入的模式為:
/^([iI][0-9]+)|([A-Za-z0-9]+)$/
然后,您將面臨一個單獨且更簡單的問題,即根據表單上其他控件的狀態來確定經過驗證的輸入是否適當。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.