正则函数

js正则函数 2011-12-14 22:21:54| 分类: javascript脚本 | 标签: |字号大中小 订阅 .

js正则函数(内部)

2009-10-27 15:32:32| 分类: javascript |字号 订阅
1.)String方法
a.)String.search()
参数:可以是正则表达式也可以是普通的字符串。
返回值:如果找到匹配则返回首字符的索引位置,找不到则返回-1
var s = "Hello world.";
reg = /world/i; // i表示不区分大小写
alert(s.search(reg));
b.)String.replace()
参数:1.正则表达式 2.用于替换的字串
返回替换后的字符串
var s = "Hello world.World!";
reg = /world/gi; // g为全局模式,会替换所有匹配
alert(s.replace(reg,'a'));
子表达式(可以通过$n访问括号里匹配的子表达式):
var s = "11 22 33 44 55 66 77!";
reg = /(\S+)(\s+)(\S+)/g; // i表示不区分大小写
alert(s.replace(reg,'$3$2$1')); //22 11 44 33 66 44 77!
c.)String.match()
把匹配的字符串放到数组里面返回。没有匹配则返回null
//全局模式下,每个匹配放到返回数组里
var s = "我的电话号码0631-1234567 你的是021-87654321,我们常联系啊!";
reg = /(0\d\d-\d{8}|0\d\d\d-\d{7})/g; // 注意这个正则可能不完整还可能有更简单的写法
alert(s.match(reg)); //0631-1234567,021-87654321
//没有设置g标记时,返回的数组[0]是整体匹配,1-n表示子匹配
var s = "我的工资是$800,她的工资是$400!";
reg = /(\$)(\d+)/; // $需要\转义
alert(s.match(reg)); //$800,$,800
d.)String.split([分隔符[,返回元素个数限制])
//普通的分割
var s = "我的工资是$800,她的工资是$400!";
alert(s.split(',')[0]); //我的工资是$800
//使用正则
var s = "中国人口达到14亿,人均收入却不到3000美元,所以中国还处于发展中国家!";
alert(s.split(/\d/)); //中国人口达到,亿,人均收入却不到,美元,所以中国还处于发展中国家!
2.)RegExp对象
a.)RegExp.test(str)
绻鹲tr匹配此正则对象则返回true.
var s = "这句话包含数字123用于测试!";
var re=/\d+/;
if(re.test(s))
alert("包含数字");
b.)RegExp.exec()比String.match()更强大
//非全局调用exec,[0]返回匹配,1-n返回子匹配
var s = "数字123,字母abc,下划线_!";
var re=/(\w)\w*/;
alert(re.exec(s));//123,1
alert(re.exec(s).input);//数字123,字母abc,下划线_!
alert(re.exec(s).index);//2
//带全局标记
var s = "数字123,字母abc,下划线_!";
var re=/(\w)\w*/g;
alert(re.lastIndex);//0
alert(re.exec(s));//123,1
alert(re.lastIndex);//5
alert(re.exec(s));//abc,a
alert(re.lastIndex);//11
alert(re.exec(s));//_,_
alert(re.lastIndex);//16
c.)正则表达式构造函数
re = new RegExp("pattern",["flags"])
var s = "数字123,字母abc,下划线_!";
var re=new RegExp("(\\w)\\w*","g");//由于\在引号内也是转义符,所以需要多加一个\
alert(re.exec(s));//123,1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值