如何在正则表达式下重写
/((?:\+|00)[17](?: |\-)?|(?:\+|00)[1-9]\d{0,2}(?: |\-)?|(?:\+|00)1\-\d{3}(?: |\-)?)?(0\d|\([0-9]{3}\)|[1-9]{0,3})(?:((?: |\-)[0-9]{2}){4}|((?:[0-9]{2}){4})|((?: |\-)[0-9]{3}(?: |\-)[0-9]{4})|([0-9]{7}))/g
与此模式匹配
+1(555)532-3455
答案 0 :(得分:0)
对于匹配该字符串,您的表达似乎不必要地复杂化。您正在尝试匹配以下方面:
要匹配此项,您只需要
^\+[0-9]\([0-9]{3}\)[0-9]{3}\-[0-9]{4}$
如果您需要在国家/地区代码,区号和电话号码之间留出可选空格,您可以将它们添加到表达式中。
^\+[0-9]\s?\([0-9]{3}\)\s?[0-9]{3}\-[0-9]{4}$
(我可能在那里有不必要的转义\
)
答案 1 :(得分:0)
或者你可以这样做:
^\+?\d(?:\s*(?:\(|\-)?\s*)\d{3}(?:\s*(?:\)|\-)?\s*)(?:\d{3}(?:\s*\-?\s*)?\d{4})$
有关此正则表达式可以匹配和不匹配的一些示例,请参阅regex demo。