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