簡體   English   中英

如何編寫此正則表達式?

[英]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.

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