今天学习了正则表达式在javascript中的应用,在这里做个总结。
正则表达式的应用场景
1.用于某种格式的验证,比如验证邮箱,是否是数字等,在web应用程序中可以做前台表单验证
2.替换内容
3.查找内容
正则表达式语法
一 限定符 指定前面的字符或者字符组合连续出现的次数
1.{n} 表示前面的字符连续出现n次,举例说明:a{3}可以匹配daaa 但不能匹配daa。
2. {m,n}表示前面的字符或者字符组合至少出现m次最多出现n次,举例说明:a{2,3}可以匹配aa,aaa但不能匹配a。
3.{m,}表示前面的字符或者字符组合至少出现m次,多则不限,举例说明a{2,}可以匹配aa,aaa,aaaa,aaaaaa等。
4.?表示前面的字符出现一次或者零次,举例说明:da?可以匹配d,da.
5.+表示前面的字符或者字符组合至少出现一次,没有上线限制,和前面的{1,}等同。
6.*表示前面的字符出现零次或者多次,没有上线限制。
二 贪婪匹配和非贪婪匹配
1.贪婪匹配 默认情况下正则表达式使用最长匹配原则,例如,要将zoom中的zo?替换成c替换的结果是com不是coom,如果修改成zo*结果是cm
2.非贪婪匹配 当字符“?”紧随其他限定符(*,+,{m},{m,n})时,正则表达式使用最短匹配(也就非贪婪模式)比如 zo+? 匹配zo zo+匹配zoooo。
三 选择匹配符
选择匹配符就一个“|”,用来匹配两者的一个,举例说明 a|bc匹配a或者bc。
四 分组组合符和反相引用符
分组组合符:将正则表达式某部分组合起来的符号,格式为(pattern),就是用括号把正则表达式包围起来。例如:(abc)de,abc就是一个分组。
反相引用符:用与匹配前面的分组组合所匹配的内容的符号,格式为\num,举例说明,要匹配连续五个数字可以用\d{5},但是要匹配连续相等的五个数字,就要用到反相引用符了(\d)\1{4},\1表示组合表达式(\d)匹配的内容,如果不需要引用和检索括号中所匹配的结果内容,可以使用(?:pattern),比如abc(?:y|c),表示不存储组合表达式匹配的结果。
五 特殊符号
1.[...]该符号用来指定可以匹配多个符号中的一个,举例说明[abd]可以匹配a b d 。
2.[^...]加上这个符号,表示匹配除了中括号中出现的字符。举例说明[^abd]匹配除a b d以外的任意单个字符,如果^没有出现在[后面还表示普通的字符^。
3.[a-z] 表示一个范围,匹配a到z的之间的任意一个字符,如果要匹配-字符,需要对其进行转义[a\-z],还可以将连接符-放到末尾或前面,[a-z-]或者[-a-z]
4. \d 表示0-9之间的任意一个数字
5. \D \d的反义,匹配除了0-9之间的任意一个字符。
6. \s 匹配空行,如\r\n \t 。
7. \S 匹配除空行之外的字符。
8. \w 匹配a-zA-Z0-9_。
9. \W 匹配除了a-zA-Z0-9_之外的字符。
10. . 匹配除换行符(\n)之外的任意字符,如果要匹配任意的字符可以这样写[\s\S]或者 [\d\D]或者[\w\W]要匹配任意连续的两个字符可以写([\s\S])\1。
11. ^ 如果出现在正则表达式第一个位置,表示以那个字符开始,举例说明:^u 匹配us中的u单不匹配you中的u。
12. $放在正则表达式结尾表示以什么结尾,o$匹配zoo中的o不匹配school中的o。
13. \b 单词边界符。
14. 如果要匹配(),[]+,?等这样在正则表达式中有特殊意思的字符,需要进行转义如字符.要写成\.。
六 正则表达式javascript中的应用
1. 在javascript中用RegExp对象表示正则表达式对象,要创建一个正则表达式对象在javascript中有两种方法代码如下:
<script type="text/javascript" >
var regExp1 = /\d{1,3}/gi;
var regExp2 = new RegExp("\\d{1,3}");
</script>
2. RegExp对象,在javascript中一般用来用作输入验证,它有一个方法test方法可以验证输入字符串是否符合某种格式,返回值为boolean。例如验证一个文本框只能输入数字:
<script type="text/javascript" >
var regExp = /^\d+$/g;
alert(regExp.test("1233"));
</script>
3. String 对象的三个方法
1. replace(reg,replaceText),它返回一个替换后的字符的串。例子如下,把一个字符串中的数字替换成字符"H"
<script type="text/javascript" >
var str = "dd22331ggzz12"
var regExp = /\d+?/gi;
var replaceStr = str.replace(regExp,"H");
alert(replaceStr);
</script>
2. match(regExp)返回一个数组,数组存放的是匹配的内容.例子如下:
<script type="text/javascript" >
var str = "dd22331ggzz12"
var regExp = /\d+/gi;
var arr = str.match(regExp);
alert(arr.length);
var len;
for(var i= 0,len = arr.length;i < len;i++){
alert(arr[i]);
}
</script>
3.split(regExp[,limit])把一个字符串按照一个的规则分开,返回一个数组,接受两个参数,一个是正则表达式对象也可以是正常的字符串,第二个参数是可选的,表示返回数组的大小第二个参数影响返回的数组的大小,比如5表示返回的数组的大小是5,至少匹配四次下:
<script type="text/javascript" >
var str = "dd22331ggzz12"
var regExp = /\d+/gi;
var arr = str.split(regExp);//把字符串用数字分开
alert(arr);
</script>
最后列举一些长用的正则表达式
1. 匹配空行 /^\s*$/
2. 匹配数字 /\d+/
3. 匹配电子邮件/^[\w-]+@[\w-]+\.com(\.cn)?$/
4. 匹配字符串左右的空格 /(^\s+)|(\s+$)/
5. 匹配ip地址/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.\d{1,2}|1\d\d|2[0-4]\d|25[0-5]){3}$/
6.手机号码 /^1[358]\d{9}$/
分享到:
相关推荐
javascript正则表达式迷你书 (1).pdf
javascript正则表达式详解 (chm)
网上看到的一篇介绍Javascript正则表达式的文章,感觉非常不错,整理了一下导出成PDF,有兴趣的看一下。文章属于转载,文档中注明了出处。
JavaScript正则表达式迷你书,学习javascript的宝典。
了解正则表达式概念 掌握正则表达式的语法 熟练掌握正则表达式在JavaScript中的应用
正则表达式可以: •测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证 •替换文本。可以在文档中使用一个正则表达式...
经典JavaScript正则表达式实战 目录 1. 正则表达式实战...1 2. 匹配结尾的数字...2 3. 统一空格个数...3 4. 判断字符串是不是由数字组成...3 5. 电话号码正则...3 6. 手机号码正则表达式...4 7. 使用正则...
经典Javascript正则表达式 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。 匹配中文字符的正则表达式: [\...
常用Javascript正则表达式汇总,常用Javascript正则表达式汇总
JavaScript正则表达式验证身份证号码是否合法(两种方法)分析.docx
主要介绍了JavaScript正则表达式匹配<div><style>标签 的相关资料,需要的朋友可以参考下
Javascript正则表达式测试网页.rar 学习和做网页时使用的手册
JJavaScript正则表达式下——相关方法 search match replace
javascript正则表达式表单验证大全非常好用!
快速的掌握简单的java、JavaScript正则表达式,
Regulex是一款JavaScript正则表达式解析和可视化工具。通过该工具可以对任何正则表达式进行解析,并以可视化图表的显示显示该正则表达式的解析流程结构,还可以将图表导出为图片。
给定正则表达式/^(SE)?[0;有关RegExp类的test方法正确的结论;已知Visa卡号可能有13位或者16位,
javascript正则表达式
许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理...