簡體   English   中英

正則表達式模式驗證js

[英]Regex pattern validation js

我有一個用於電話驗證的正則表達式,它應該接受“空格”和“+”

例如 +212 0780526395

這是我的正則表達式:+[0-9]\\s* 但它不起作用

你很接近,如果它必須只是在開頭,你必須逃避+並讓空格在數字之間:

\+[0-9\s]+

更好的方法是:

\+[0-9]+[0-9\s]*

強制在 + 符號后至少添加一個數字。

你可以使用這個:

(.*)1?-?\.?\(?\d{3}[\-\)\.\s]?\d{3}[\-\.\s]?\d(.*)

Rubular測試

你的正則表達式+[0-9]\\s*

  1. +匹配+
  2. [0-9]匹配單個數字。
  3. \\s*匹配 0 個或多個空白字符(空格、換行符、制表符等)

因此,您的正則表達式匹配“+8”、“+8”、“+8”,即加號后跟單個數字后跟任意數量的空白字符。

我假設+字符僅在它位於所有數字之前時才有效。 所以使用:

^ *\+?((?: *\d){10}) *$
  1. ^匹配字符串的開頭。
  2. *匹配 0 個或多個空格。
  3. \\+? 匹配一個可選的+字符。
  4. ((?: *\\d){10})匹配 10 次出現(見下文)的 0 個或多個空格后跟捕獲組 1 中的數字。
  5. *匹配 0 個或多個空格。
  6. $匹配字符串的結尾。

上述正則表達式中的關鍵子正則表達式是((?: *\\d){10}) ,它要求輸入正好包含 10 位數字。 我只是隨意選擇了數字 10。 要允許 7 到 10 位數字,例如使用((?: *\\d){7,10}) 或者要指定需要 1 個或多個數字,請使用((?: *\\d)+)

需要錨點^$以確保輸入包含可接受的輸入。

請參閱正則表達式演示

暫無
暫無

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

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