JavaScript之正则表达式初识
2015-04-10 16:59
190 查看
1、什么是正则表达式
正则表达式(Regular Expression)是一个描述字符模式的对象,ECMAcript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式强大的模式匹配和文本检索与替换的函数。
2、创建正则表达式的方式
第一种创建方式
var box=new RegExp(‘box’); //第一个是参数字符串
var box=new RegExp(‘box’,’ig’) //第二个是可选模式修饰符
第二种创建方式
var box=/box/; //直接用反斜杠
var box=/box/ig; //在第二个反斜杠后面加上模式修饰符
3、测试正则表达式
RegExp对象包含两个方法:test()和exec()用于测试字符串匹配。
test()
test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true。不存在则返回false.
exec()
exec()方法也用于在字符串中查找正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息,如果失败,则返回null.
/使用new运算符的test方法示例/
var pattern=new RegExp(‘box’,’i’); //创建正则表达式,不区分大小写
var str=”This is a Box!”; //创建要比对的字符串
alert(pattern.test(str)); //通过test()方法验证是否匹配
使用字符串的正则表达式的方法
4、获取控制
正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义。
贪婪与懒惰
贪婪模式与懒惰模式的语法区别在于重复限定修饰符的后面是否有问号,有的话就是懒惰模式,否则就是贪婪模式。
贪婪量词,是先吃尽所有字符,然后再一个一个地吐出来,直到匹配成功为止。
懒惰量词,是从头开始一个字符一个字符地吃,直到匹配成功为止。即贪婪是逐渐向前匹配,而懒惰是向后慢慢匹配。
例子:
var pattern=/[a-z]+?/ //?关闭了贪婪匹配,只替换了第一个
var str=’ajfifdjnfasdfdasdgh’;
var result=str.replace(pattern,’xxx’);
alert(result); //返回xxxjfifdjnfasdfdasdgh
var pattern=/8(.+?)8/g; //禁止了贪婪,开启的全局
var str=’this is 8abc8, that is 8abc8, there is 8abc8’;
var result=str.replace(pattern,’$1‘);
document.write(result); //返回this is abc, that is abc, there is abc
总结:
个人认为,通过正则表达式在客户端进行验证,可以减轻到服务器端后再验证对服务器的压力。对正则表达式的认识还只是粗浅的认识。在以后还需要不断的实践来完善。
正则表达式(Regular Expression)是一个描述字符模式的对象,ECMAcript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式强大的模式匹配和文本检索与替换的函数。
2、创建正则表达式的方式
第一种创建方式
var box=new RegExp(‘box’); //第一个是参数字符串
var box=new RegExp(‘box’,’ig’) //第二个是可选模式修饰符
第二种创建方式
var box=/box/; //直接用反斜杠
var box=/box/ig; //在第二个反斜杠后面加上模式修饰符
3、测试正则表达式
RegExp对象包含两个方法:test()和exec()用于测试字符串匹配。
test()
test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true。不存在则返回false.
exec()
exec()方法也用于在字符串中查找正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息,如果失败,则返回null.
/使用new运算符的test方法示例/
var pattern=new RegExp(‘box’,’i’); //创建正则表达式,不区分大小写
var str=”This is a Box!”; //创建要比对的字符串
alert(pattern.test(str)); //通过test()方法验证是否匹配
/*使用字面量方式的test方法示例*/ var pattern=/box/i; //创建正则表达式,不区分大小写 var str="This is a Box!"; alert(pattern.test(str)); /*使用exec返回匹配数组*/ var pattern=/box/i; var str="This is a Box!"; alert(pattern.exec(str)); //匹配了返回数组,否则返回null
使用字符串的正则表达式的方法
4、获取控制
正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义。
贪婪与懒惰
贪婪模式与懒惰模式的语法区别在于重复限定修饰符的后面是否有问号,有的话就是懒惰模式,否则就是贪婪模式。
贪婪量词,是先吃尽所有字符,然后再一个一个地吐出来,直到匹配成功为止。
懒惰量词,是从头开始一个字符一个字符地吃,直到匹配成功为止。即贪婪是逐渐向前匹配,而懒惰是向后慢慢匹配。
例子:
var pattern=/[a-z]+?/ //?关闭了贪婪匹配,只替换了第一个
var str=’ajfifdjnfasdfdasdgh’;
var result=str.replace(pattern,’xxx’);
alert(result); //返回xxxjfifdjnfasdfdasdgh
var pattern=/8(.+?)8/g; //禁止了贪婪,开启的全局
var str=’this is 8abc8, that is 8abc8, there is 8abc8’;
var result=str.replace(pattern,’$1‘);
document.write(result); //返回this is abc, that is abc, there is abc
总结:
个人认为,通过正则表达式在客户端进行验证,可以减轻到服务器端后再验证对服务器的压力。对正则表达式的认识还只是粗浅的认识。在以后还需要不断的实践来完善。
相关文章推荐
- Javascript的表单验证-初识正则表达式
- Javascript的表单验证-初识正则表达式
- javascript中正则表达式应用学习_match()
- javascript正则表达式检验
- 正则表达式在javascript中的几个实例2(转)
- javascript中正则表达式应用学习_search ()
- javascript中正则表达式应用学习_test()
- 注意:JavaScript的正则表达式跟.net的正则表达式有些差异。
- 读取javascript脚本的正则表达式
- 正则表达式使用详解 (php,perl,unix,javascript)
- 正则表达式使用详解 (php,perl,unix,javascript) (有点意思)
- JavaScript中的正则表达式解析
- 转贴(佚名):Javascript正则表达式测试网页
- JavaScript正则表达式
- 用正则表达式和javascript对表单进行全面验证
- JavaScript--正则表达式
- 注意:JavaScript的正则表达式跟.net的正则表达式有些差异。 -zz
- 正则表达式应用之过滤空格(JavaScript,源代码)
- 利用JavaScript和正则表达式进行丰富的日期判断(给其它项目组的代码,有比较好的编程风格和注释)
- Javascript 正则表达式测试页面