簡體   English   中英

JavaScript中的正則表達式驗證(測試)

[英]Regular Expression Validation (Test) in JavaScript

正則表達式問題似乎很常見,因為每個問題似乎都適用於特定情況。 話雖如此,這是我的具體情況...

我需要驗證員工ID是否為兩種特定格式之一。 第一種格式(也是我可靠使用的格式)(不帶引號):“ A000000”,其中“ A”可以是任何字母字符,“ 0”可以是0到9之間的任何數字。這是因為僅需要雇員ID的前兩個位置,這意味着用戶可以輸入“ A0”,它將進行驗證(此雇員ID在SQL語句的LIKE中使用-... SID LIKE“ A0%”再次,我使用...

[AZ]{1}\\d{1,6}

第二種格式給我帶來麻煩。 在上面僅需輸入字符串的前兩個位置的情況下,也具有相同的要求,其他任何內容都是可選的,但是如果輸入,則必須遵循指定的格式。 格式為(不帶引號):“ 000000A”。 我遇到的問題是確保輸入的位數超過兩位,輸入的下三到六個值是數字,如果輸入的最后一個值,則必須是字符。 因此有效輸入可能是...

“ 00”或“ 000”或“ 0000”或“ 00000”或“ 000000”或“ 000000A”,但非“ 0”或“ 0A”或“ 00A”或“ 000A”等,或“ 0000000”。 到目前為止,這是我對這種格式的了解...

\\d{2}(\\d{1,4})?[AZ]{0,1}

問題在於,這允許在3到6位置的任何位置輸入字母字符。 它不允許在前兩個位置(好)使用任何字母字符,也不允許在第七個(最后)位置(好的)使用任何數字字符。 它只是那些可選的第三到第六個字符,允許使用字母字符,這使我感到悲傷。

我希望這是足夠的信息(或可能不會太多)。 任何幫助將不勝感激。 謝謝!!!

試試這個表達式:

(\d{2,5}|\d{6}[A-Z]?)

這匹配2到5位數字( \\d{2,5} )或6位數字和一個可選字母( \\d{6}[AZ]? )。 如果要精確匹配,請使用^$錨標記開始和結束:

^(\d{2,5}|\d{6}[A-Z]?)$

對於第一個, {1}是多余的:

[AZ] [0-9] {1,6}

對於第二個,也許是這樣的:

\\ d {2} \\ d {0,1} \\ d {0,1} \\ d {0,1} \\ d {0,1} [AZ] {0,1}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM