簡體   English   中英

Javascript偏序號碼匹配

[英]Javascript Partial number match

我正在嘗試在JS中創建部分RegEx匹配。 我想要實現的是,當用戶在輸入字段內輸入內容時,JS將始終在按鍵時對數字序列進行部分匹配,而不僅僅是在滿足整個RegEx匹配時。

所以,這是RegEx規則:

^[12][^1-6]\d{2}$

當用戶輸入數字1或2時,這是正確匹配,但3不正確。 接下來,當未輸入1到6之間的數字時,這也是正確的,最后任何2個下一個數字都是正確的。 正如我所說,現在只有輸入所有4個數字時才能完成RegEx匹配。

如何實現部分輸入檢查?

那么,最簡​​單的解決方案是將可選組件包裝到相應的(?:)? 構造。 您實際上有兩個可選組件,因此您需要考慮到這一點。

結果看起來像......

^[12](?:[^1-6]\d{0,2})?$

......因為你必須匹配'2x','2x1'和'2x​​11',似乎。 因此{0,2}量詞。

問題顯然是你不能使用單個正則表達式來檢查用戶是否已經完成了在你的字段中輸入一些值 - 或者不是。 換句話說,如果你想要'中間' 1匹配,但結果1不匹配,那么,單個正則表達式檢查是不可能的。

你可以“或”你的正則表達式,但它意味着重復:

^([12]|[12][^1-6]|[12][^1-6]\d{2})$

打破這個:

^      From the start of the string / line
       match either
[12]   The numbers 1 or 2
|      or
[12]   The numbers 1 or 2
       followed by
[^1-6] Any character which is not the numbers 1 through 6
|      or
[12]   The numbers 1 or 2
       followed by
[^1-6] Any character which is not the numbers 1 through 6
       followed by
\d     Any number
{2}    repeated two times
$      followed by the end of the string / line

這將符合以下任何一項:

1
2
1N
2N
1NXX
2NXX

其中N是不是數字1到6的任何數字, X是任何數字。

注意:如果您真的只想匹配正則表達式第二部分中的數字0和7-9,只需將[^1-6]更改為[07-9]

暫無
暫無

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

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