微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript正则表达式基础知识入门

正则表达式的好处到底在哪里呢,下面我们先进行个了解: 我们用js中处理字符串的方法,写出取出字符串中数字的函数

rush:js;"> var str='dgh6a567sdo23ujaloo932'; function getNumber(obj){ var arr=[]; for (var i = 0; i < obj.length; i++) { if (obj.charAt(i)>='0'&&obj.charat(i)<='9'){ arr.push(obj.charat(i)); } } return arr; }; console.log(getNumber(str)); //["6","5","6","7","2","3","9","2"]

上面的方法我们取出了字符串中的数字,但是我们不满意,我们需要的是['6','567','23','932']的形式,对函数进行改造:

rush:js;"> function getNumber(obj){ var arr=[]; var temp=''; for (var i = 0; i < obj.length; i++) { if (obj.charAt(i)>='0'&&obj.charat(i)<='9'){ temp+=obj.charat(i);//现将相邻的数字连接起来 } else{ //每当连接的数字断开时,就在这执行 if (temp) { arr.push(temp); temp=''; } }; } if (temp) { //这里的作用是为了显示最后数字的,原因不想解释 arr.push(temp); temp=''; } return arr; };

那我们用正则表达式的方式来解决这个函数实现的功能

rush:js;"> function getNumber2(obj){ var arr=[]; var re=/\d+/g; arr.push(obj.match(re)); return arr; };

完整的看看程序的运行结果吧:

rush:js;">

从上面的例子我们可以看出来,正则表达式的方法有着同样的效果,但是代码更加简短,更加高效,这就是正则的好处啊 正则是为了更高效的处理字符串而产生的,和字符串处理方法一样,只是更加高效、简洁(正则只可以处理字符串)

下面我们来系统的学习一下,正则的几个常用的方法

在这之前说一下正则的写法,正则和其他对象array()、object()、Date()等都一样,都有初始化的方式 var re=/这里面要写匹配的东西,不写的话就是注视符号了/; //这样的就是正则对象的简单创建,后面文章我都是直接用它来代替的 var re=new RegExp(); //这样的创建方式也可以的,大家懂得,只是和简写不同的是参数传递有点不一样

(1)test

含义:正则去匹配字符串,当匹配成功返回true,反之,返回false; 语法:re.test(字符串); 先说点转义字符吧 : /s空格 /S非空格 /d数字 /D非数字 /w字符(字母、数字、下划线) /W非字符 举个例子:判断一个字符串是否都是数字

rush:js;">

(2)search

含义:正则去匹配字符串,当匹配成功返回匹配成功的位置,反之,返回-1;和字符串处理方法中的indexof()功能一样 语法:字符串.search(re); [color=Red]注意:正则中认是区分大小写的,要想让其不区分大小写的就是加标识i;[/color] 例子,不区分大小写的去正则匹配字符串中某个字符

rush:js;">

(4)replace

含义:正则去匹配字符串,当匹配成功的字符串被新的字符串所替代 语法:字符串.replace(re); 例子:将字符串中的所有的a都替换成b

rush:js;">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐