誰能幫我設定正確的輸入模式:當輸入起始數字為 2 時,長度為 17 位,如果以 3 開頭,則長度為 16 位。
例如:
當輸入以數字 2 開頭時,它必須是: pattern="\d{4} \d{4} \d{4} \d{4} \d{1}"
但是當輸入以數字 3 開頭時,它必須是: pattern="\d{4} \d{4} \d{4} \d{4}"
怎么設定圖案??
uj5u.com熱心網友回復:
最明顯的解決方案是使用兩種替代方案:
^(?:2\d{3} \d{4} \d{4} \d{4} \d|3\d{3} \d{4} \d{4} \d{4})$
請參閱正則運算式演示。
該^字串的開頭匹配,2\d{3} \d{4} \d{4} \d{4} \d匹配的數字開始2,3\d{3} \d{4} \d{4} \d{4}匹配的數字開始3。
但是,在 PHP PCRE 正則運算式中,您可以使用條件。在這里,您可以將模式縮短為
^(?:(2)|3)\d{3} \d{4} \d{4} \d{4}(?(1) \d)$
請參閱此正則運算式演示。在這里,(?:(2)|3)將2數字匹配并捕獲到組 1 中,或匹配3。該(?(1) \d)模式檢查組 1 是否匹配,如果匹配,則在字串末尾需要一個空格和一個數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/407981.html
標籤:
上一篇:解決定制產品徽章展示
下一篇:如何使用sympy求解不等式$5\sin(\theta)-\frac{1}{2}\sin\left(\frac{5\theta}{2}\right)\geq0$?
