Javascript 改进的电话验证模式

Javascript 改进的电话验证模式,javascript,html,validation,Javascript,Html,Validation,我如何编写一个模式,它将帮助我只使用有效的输入: + 11111111 + 11 1 1 1 1 + 11 (11) 11 21 + 11 (1-1) 11 1 1 etc 主要的麻烦在于我必须只使用一个+(第一个)和多个时间-,但是!两次——是错误的,但1-2-1是有效的 只有一个空格有效,我的意思是11 1 2 3无效 写这么大的图案是真的吗 现在我使用其中一种模式: [\+]\d{2}[\(]\d{2}[\)]\d{4}[\-]\d{4} ^\s*\(?(020[7,8]{1}\)?[

我如何编写一个模式,它将帮助我只使用有效的输入:

+ 11111111
+ 11 1 1 1 1
+ 11 (11) 11 21
+ 11 (1-1) 11 1 1
etc
主要的麻烦在于我必须只使用一个+(第一个)和多个时间-,但是!两次——是错误的,但1-2-1是有效的

只有一个空格有效,我的意思是
11 1 2 3
无效

写这么大的图案是真的吗

现在我使用其中一种模式:

[\+]\d{2}[\(]\d{2}[\)]\d{4}[\-]\d{4}

^\s*\(?(020[7,8]{1}\)?[ ]?[1-9]{1}[0-9{2}[ ]?[0-9]{4})|(0[1-8]{1}[0-9]{3}\)?[ ]?[1-9]{1}[0-9]{2}[ ]?[0-9]{3})\s*$

\d{3}[\-]\d{3}[\-]\d{4}
从这里开始:


但是有一点需要硬编码,我需要一些灵活的解决方案,基于我上面的示例…

编写一个简单的类似FSM的解析器可能会更容易,所以它会逐字读取并检查它是否有效。您想要支持哪种电话号码?具体国家?国际的?你能给我们举一些例子,说明你试图获取的数字通常是什么样子的(与人们可能输入的数字相反)?@talemyn International。你能给我们举一些例子,说明你试图获取的数字通常是什么样子的(与人们可能输入的数字相反)—万事俱备question@MightyPork请举个例子。@Shaun和?你是什么意思?编写一个简单的类似FSM的解析器可能会更容易,所以它会逐字读取并检查它是否有效。你想支持哪种电话号码?具体国家?国际的?你能给我们举一些例子,说明你试图获取的数字通常是什么样子的(与人们可能输入的数字相反)?@talemyn International。你能给我们举一些例子,说明你试图获取的数字通常是什么样子的(与人们可能输入的数字相反)—万事俱备question@MightyPork请举个例子。@Shaun和?你是什么意思?编写一个简单的类似FSM的解析器可能会更容易,所以它会逐字读取并检查它是否有效。你想支持哪种电话号码?具体国家?国际的?你能给我们举一些例子,说明你试图获取的数字通常是什么样子的(与人们可能输入的数字相反)?@talemyn International。你能给我们举一些例子,说明你试图获取的数字通常是什么样子的(与人们可能输入的数字相反)—万事俱备question@MightyPork请举个例子。@Shaun和?什么意思?