[英]How to write this regexp?
我正在驗證的字段可能不是數字,而是數字,但可能包含空格或減號。
這是用於驗證電話號碼字段! 因此,應該滿足以下條件:(可能忘記了條件,請提醒我)
1- Atleast 5 numbers
2- May contain space
3- Not shorter than 5 characters
4- Not longer than 20 characters
5- May contain minus-sign
6- Not empty
if (nr.length>4 && nr.length<21 && nr!=''){
}
我應該如何編寫正則表達式? 還是if語句?
謝謝
試試這個正則表達式:
^(?=(?:\D*\d){5})[\d -]{5,20}$
前瞻斷言(?=(?:\\D*\\d){5})
測試五個數字。 其余測試的長度至少為5個字符,最多為20個字符,只能是數字,空格或連字符。
nr != ''
條件是多余的,因為長度比較已經排除了零長度。
因此,在不進行長度比較的情況下,您似乎只能使用數字,空格和破折號的簡單字符類了:
/[\d\s-]{5,20}/
當然,這允許類似-----或一堆空格的事情。 因此,也許您想先刪除所有不是數字的內容,然后再檢查
/\d{5,20}/
這可能會更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.