[英]Regular expression : match either of two conditions?
嗨,我對正則表達式了解不多。 但是我需要使用angularJs進行表單驗證。
以下是要求
輸入框應僅接受以下任一情況
(1)前2個字母的字母+ 6個數字
要么
(2)8個數字
以下是一些正確的輸入:-
(1)SH123456(2)12345678(3)SD456565
我嘗試了data-ng-pattern="/(^([a-zA-Z]){2}([0-9]){6})|([0-9]*)?$/"
,它的對於上述兩種情況都可以正常工作,但仍可以接受S2D3E4F5之類的字符串,並且可能還有許多其他組合。
我做錯了我無法找到答案。
任何幫助都是可觀的!
謝謝
在您的正則表達式中,兩個替代分支分別錨定:
(^([a-zA-Z]){2}([0-9]){6})
-字符串開頭的2個字母和6個數字 |
- 要么 ([0-9]*)?$
-字符串末尾的可選零個或多個數字 您需要調整組的邊界:
data-ng-pattern="/^([a-zA-Z]{2}[0-9]{6}|[0-9]{8})?$/"
^ ^^^^
參見regex演示 。
現在,模式將匹配:
^
-字符串開頭 (
-分組開始:
[a-zA-Z]{2}[0-9]{6}
-2個字母和6位數字 |
- 要么 [0-9]{8}
-8位數字 )?
-分組結束?
量詞使其匹配1或0次(可選) $
-字符串結尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.