[英]Regex pattern validation js
我有一個用於電話驗證的正則表達式,它應該接受“空格”和“+”
例如 +212 0780526395
這是我的正則表達式:+[0-9]\\s* 但它不起作用
你很接近,如果它必須只是在開頭,你必須逃避+
並讓空格在數字之間:
\+[0-9\s]+
更好的方法是:
\+[0-9]+[0-9\s]*
強制在 + 符號后至少添加一個數字。
你的正則表達式+[0-9]\\s*
:
+
匹配+
。[0-9]
匹配單個數字。\\s*
匹配 0 個或多個空白字符(空格、換行符、制表符等)因此,您的正則表達式匹配“+8”、“+8”、“+8”,即加號后跟單個數字后跟任意數量的空白字符。
我假設+
字符僅在它位於所有數字之前時才有效。 所以使用:
^ *\+?((?: *\d){10}) *$
^
匹配字符串的開頭。*
匹配 0 個或多個空格。\\+?
匹配一個可選的+
字符。((?: *\\d){10})
匹配 10 次出現(見下文)的 0 個或多個空格后跟捕獲組 1 中的數字。*
匹配 0 個或多個空格。$
匹配字符串的結尾。 上述正則表達式中的關鍵子正則表達式是((?: *\\d){10})
,它要求輸入正好包含 10 位數字。 我只是隨意選擇了數字 10。 要允許 7 到 10 位數字,例如使用((?: *\\d){7,10})
。 或者要指定需要 1 個或多個數字,請使用((?: *\\d)+)
。
需要錨點^
和$
以確保輸入僅包含可接受的輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.