正则表达式(国际电话号码验证)
1.如果存在'+'号,必须在第一位
2.如果存在 '(' ,必须存在 ')'
3.'-'可以存在任意位置,但不能是第一位和最后一位
4.可以存在空格
5.必须有数字
6.长度不限
7.出现其他符号不能通过验证
这是我想的国际电话验证了,大家有什么好的想法没,哪里错了可以指出,最好有正则表达式。
谢谢 展开
正则表达式(国际电话号码验证)为regularEx= "^(((\\+\\d{2}-)?0\\d{2,3}-\\d{7,8})|((\\+\\d{2}-)?(\\d{2,3}-)?([1][3,4,5,7,8][0-9]\\d{8})))$"。
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
扩展资料:
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
正则表达式灵活性、逻辑性和功能性非常强,可以迅速地用极简单的方式达到字符串的复杂控制。给定一个正则表达式和另一个字符串,可以根据给定的字符串判断是否符合正则表达式的过滤逻辑(称作“匹配”),也可以通过正则表达式,从字符串中获取想要的特定部分。
^(\s*\+?\s*(?<leftp>\()?\s*\d+\s*(?(leftp)\)))(\s*-\s*(\(\s*\d+\s*\)|\s*\d+\s*))*\s*$
正则表达式如上,说明一下,如果在\本身具有转义作用的语言中使用,一个\要写成两个,写成\\
在一对‘(’和')'中只能是连续的数字
这个正则已经经过简单的测试,不过测试时命名分组是写成?P<name>的,在大部分语言中命名分组就是?<name>,和上面的写法一样
^\s*\+?\s*(\(\s*\d+\s*\)|\d+)(\s*-?\s*(\(\s*\d+\s*\)|\s*\d+\s*))*\s*$
javascript好像不支持命名分组,重新写了一个。可以支持在大的一串数字中部分数字有括号