我有以下正则表达式:
/[0-9\s-.]{8,10}/
我的目的是检测用户是否在描述区域输入了可能是电话号码(澳大利亚人)的任何内容,并建议他们不要这样做。它可以很好地匹配可能在其中包含空格点或连字符的数字。
不幸的是,它也会匹配" -----------"等内容。如何制作匹配所需的数字,其他类型可选?
答案 0 :(得分:0)
你几乎得到了它。你真正想要的是:
(?:\(\d\d?\)[\s-.])?\d{4}[\s-.]\d{4}
稍微分解一下:
(?:\(\d\d?\)[\s-.])?
是最令人生畏的部分,实际上只是用括号中的可选区域代码描述,后跟空白字符,短划线或句点中的任何一个。\d{4}
描述了其余数字的两个部分之一。[\s-.]
是字符类,(在本例中)将匹配空白字符,短划线或句点。