正则表达式、 怎么判断 国内电话号码 带区号 3-4 位、分机的 不带区号、 不带分机也可以的
区号要么是3位,要么是4位吧,把这个改下
drop table tel;
create table tel(code varchar(20));
insert into tel values ('010-66667788');
insert into tel values ('010-55667788');
insert into tel values ('0755-56567788');
create table reg(code varchar(20),city varchar(20));
insert into reg values('010','北京');
insert into reg values('020','广州');
insert into reg values('0755','深圳');
select substr(code,0,3) from tel;
select instr(code,'-') from tel;
select substr(tel.code,0,instr(code,'-')-1) from tel;
select replace('010','010','北京') from dual;
select reg.city||' '||substr(tel.code,instr(tel.code,'-')+1),replace(replace(tel.code,substr(tel.code,0,instr(tel.code,'-')-1),reg.city),'-',' ')
from tel,reg where substr(tel.code,0,instr(tel.code,'-')-1)=reg.code;
where条件加个or,判断区号是3位或4位匹配的,之前把你code里的非法字符去掉
drop table tel;
create table tel(code varchar(20));
insert into tel values ('010-66667788');
insert into tel values ('010-55667788');
insert into tel values ('0755-56567788');
create table reg(code varchar(20),city varchar(20));
insert into reg values('010','北京');
insert into reg values('020','广州');
insert into reg values('0755','深圳');
select substr(code,0,3) from tel;
select instr(code,'-') from tel;
select substr(tel.code,0,instr(code,'-')-1) from tel;
select replace('010','010','北京') from dual;
select reg.city||' '||substr(tel.code,instr(tel.code,'-')+1),replace(replace(tel.code,substr(tel.code,0,instr(tel.code,'-')-1),reg.city),'-',' ')
from tel,reg where substr(tel.code,0,instr(tel.code,'-')-1)=reg.code;
where条件加个or,判断区号是3位或4位匹配的,之前把你code里的非法字符去掉
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-07-22
^(((0\d{3}[\-])?\d{7}|(0\d{2}[\-])?\d{8}))([\-]\d{2,4})?$
中间用-作为分隔符,注意-必须转义本回答被网友采纳
中间用-作为分隔符,注意-必须转义本回答被网友采纳
第2个回答 2011-07-22
开头有0的都是区号
第3个回答 2018-03-28
^(((0\d{2,3})[\-]))?[1-9]\d{7}[\-]?\d{2,4})?$