[英]Regex to require at least one digit or to be left blank
需要一些我正在嘗試創建的正則表達式的建議。
我需要檢查字符串是否包含至少一個數字(0-9)或者它可以留空。
這是檢查數字的正則表達式:
(.*[0-9]){1}.*$
如何修改它以允許空字符串?
也許你可以嘗試這樣的事情:
^($|.*[0-9])
即使^
和$
不消耗任何字符,它們仍然可以在組內部和外部使用。
此外,根據您正在做的事情,您可能甚至不需要這些組:
^$|.*[0-9]
你可以用
^(?:(?=\D*\d)|^$).*
^ # start of the string (?: (?=\\D*\\d) # either match at least one number | # or ^$) # the empty string .* # 0+ characters
請參閱regex101.com上的演示 。
適用兩種條件?
(可選)標記:
^(\D*\d.*)?$
OP在問題下面的評論中提到了jquery。
您可以使用\\d
和test()
字符串中是否存在數字,並test()
字符串的長度,如下面的代碼段所示。 這極大地簡化了正則表達式模式和測試。
var a = [ 'cdjk2d', '', //valid 'abc', ' ' //invalid ] a.forEach(function(s){ if(s.length === 0 || /\\d/.test(s)) { console.log(s) } })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.