我正在为javascript应用程序(Qualtrics)编写正则表达式,并且无法弄清楚如何为电话号码字段创建正则表达式,该字段可能是国际的,也可能不是国际的,可能是空白的。所以要求可能是“+”,“0-9”,“ - ”,“。”,“”
如果我能弄明白,我还想在进入之前和之后为空间创造灵活性。
答案 0 :(得分:1)
如果您只需要任意数量的字符,包括数字,+, - ,.和空间(并假设你希望匹配整个输入),然后相当简单:
^[0-9\-+.\s]*$
如果你正在寻找一些东西来验证点,破折号,空格等的位置并验证长度,那么完成它的正则表达式往往变得非常复杂和愚蠢。例如,这个:
^(:(:+ 1 \ S *(:[.-] \ S *))(:???????(\ S *([2-9] 1 [02-9] | [2-9] [2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9 ????] [2月8日] 1 | [2-9] [2月8日] [02-9]))\ S *(:[.-] \ S *))([2-9] 1 [ 02-9] | [2-9] [02-9] 1 | [2-9] [02-9] {2})\ S *(:[.-] \ S *)([O-? 9] {4})?(?:\ S *(?:??#| X | EXT |扩展名)\ S *(\ d +))$
如果我理解正确,似乎是处理您想要识别的集合子集的标准实现。
如in this question概述的方法可能是一个更明智的解决方案。