源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js正则表达式学习笔记

  • 时间:2022-12-12 23:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js正则表达式学习笔记
[b]正则表达式:[/b]对字符串中的信息实现查找、替换和提取操作。(不支持注释和空白,必须写在一行内) [b]正则表达式的创建:[/b]包含在一对斜杠之间的字符(直接量语法) 例如:
var pattern = /s$/;  // 创建一个正则来匹配所有以字母s结尾的字符串,并赋值给pattern
[b]一 、字符类 [/b]将直接量字符单独放进方括号内就组成了字符类。 一个字符类可以匹配它所包含的任意字符。 [b]正则表达式的字符类: [/b][b][...]  [/b]    方括号内的任意字符 [b][^...]   [/b] 不在方括号内的任意字符 [b].      [/b]     除换行符和其他Unicode行终止符之外的任意字符 [b]\w    [/b]    任何ASCII字符组成的单词 等价于[a-zA-Z0-9] [b]\W [/b]       任何非ASCII字符组成的单词 等价于[^a-zA-Z0-9] [b]\s   [/b]      任何Unicode空白符 [b]\S    [/b]    任何非Unicode空白符 [b]\d   [/b]     任何ASCII数字 等价于[0-9] [b]\D   [/b]     任何非ASCII数字 等价于[^0-9] [b][\b]     [/b] 退格直接量(特例) [b]例如[/b]:/[a,b,c]/       表示和字母a,b,c中的任意一个都匹配    /[\s\d]/        表示匹配任意空白字符或者数字 [b]二、重复[/b] 用以表示指定字符重复的标记 正则表达式的重复字符语法: [b]{n,m}  [/b]    匹配前一项至少n次,但不超过m次 {n,}     匹配前一项n次或者更多次 {n}      匹配前一项n次       匹配前一项0次或者1次,也就是前一项是可选的,等价于{0,1} +         匹配前一项1次或多次,等价于{1,} *          匹配前一项0次或多次,等价于{0,} [b]例如[/b]:/\d{2,4}/     匹配2~4个数字    /\w{3}\d/    精确匹配3个单词和一个可选数字 [b]三、选择、分组和引用[/b] 匹配程序:从左到右,如果左边的匹配项匹配了,就自动忽略右边的匹配项(即使可以产生更好的匹配) ①     |    用于分隔供选择的字符    例如: /ab|cd|ef/      可以匹配字符串“ab”,"cd"或者“ef”        /\d{3}|[a-z]{4}/       匹配3位数字或四个小写字母 ②  () [b]作用一:[/b]把单独项合成子表达式 [b]作用二:[/b]在完整的模式中定义子模式     当一个正则表达式成功的和目标字符串相匹配时,可以从目标字符串中抽出和圆括号中的子模式相匹配的部分。     例如:     /[a-z]+\d+/   检索一个或多个小写字母后边跟着一个或多个数字     如果我们关心的是每个尾部的数字,则可以把模式的数字部分放到括号(/[a-z]+(\d)/),这样就可以从检索到的匹配中抽取数字了 [b]作用三:[/b]允许在同一正则表达式的后部引入前面的子表达式     实现方法:在字符\后加一位或多位数字(这个数字指定了带圆括号的子表达式在正则表达式中的位置)     例如:\1    引用的是第一个带圆括号的子表达式     注: 位置以参与计数的左括号位置为准;     正则表达式不允许用双引号括起的内容中有单引号,反之亦然。 总结: [b]|  [/b]     选择,匹配的是该字符左边的子表达式或右边的子表达式 (...)      组合,将几个项组合成一个单元 (...?)    只组合,把项组合到一个单元,但不记忆与该组相匹配的字符 \n        和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式,组索引是从左到右的左括号数,(?: 这个形式的分组不参与索引编码[b] 四、指定匹配的位置: 锚 :[/b] 指定匹配发生的合法位置 [b]^  [/b]  匹配字符串的开头 [b]$ [/b]   匹配字符串的结尾 [b]\b [/b]  匹配一个单词的边界 (位于\w和\W之间的位置) [b]\B  [/b] 匹配非单词边界的位置 [b]五、修饰符[/b] 修饰符是放在//之外的,不会出现在两条/线之间 [b]i [/b]不区分大小写 [b]g [/b]全局匹配,找到所有匹配,而不是找到第一个之后就停止 [b]m [/b]多行匹配 [b]六、 用于模式匹配的String对象的方法[/b] [b]方法一: [/b]search() 检索与之匹配的位置 参数:一个正则表达式 返回:第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1 例如:
<script>
 "javascript".search(/script/i);  //返回值为4  
</script>
注:① 如果search()的参数不是正则表达式,则会通过RegExp构造函数将他转换成正则表达式       ② search()不支持全局检索 [b]方法二:[/b] replace() 执行检索与替换操作 参数:第一个-->正则表达式    第二个-->要进行替换的字符串(也可是一个函数,该函数能动态的计算替换字符串) 注:① 支持g,     正则表达式中设置了g:所有与模式匹配的子串都将替换成第二个参数指定的字符串       正则表达式中没设置g:只替换所匹配的第一个子串   ② 如果第一个参数不是正则,而是一个字符串时,replace()将直接搜索这个字符串 例如:将所有不区分大小写的javascript都替换成大小写正确的JavaScript
<script>
 var str = "javascript,javascript,javascript,javaScript";
 alert(str.replace(/javascript/gi,"JavaScript"));  //JavaScript,JavaScript,JavaScript,JavaScript
</script>
[b]方法三 :[/b] match() 参数:正则表达式 返回:由匹配结果组成的数组 支持g [b]实例一: [/b]
<script>
 var math = "1 plus 2 equals 3".match(/\d+/g);
 console.log(math);  // ["1", "2", "3"]
 console.log(typeof math);  //object
</script>  
[b]实例二:[/b]
<script>
 var math = "1 plus 2 equals 3".match(/\d/);
 console.log(math);  // ["1", index: 0, input: "1 plus 2 equals 3"]
 console.log(typeof math);  //object
</script>
注意: 给字符串的math()传入一个非全局的正则表达式: 匹配情况:只检索第一个匹配 返回值:数组     数组第一个元素:所匹配的字符串     数组第二个元素:正则表达式中用圆括号括起来的子表达式,返回的数组有两个属性-->index和input [b]方法四: [/b]split() 返回值:数组 分隔符:split()的参数 例如:
<script>
 var str= "1,2,3,4,5,6,7,8".split(',');
 console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>
参数是正则表达式时(可以指定分隔符,允许两边可以留任意多的空白符) 返回:用以调用它的字符串拆分为一个子字符串组成的数组
<script>
 var str= "1,2,3,4,5,6,7,8".split(/\s*,\s*/);  //允许两边留任意多的空白符
 console.log(str);  //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>
[b]七、RegExp 对象[/b] RegExp()构造函数: 参数:两个字符串参数 第一个:正则表达式的主体部分(两个斜杠之间的文本) 第二个:(可选)指定正则表达式的修饰符(g,i,m这三者或这三者的组合) 注意:无论是字符串直接量还是正则表达式都使用/字符作为转译字符的前缀 例如:
var zipCode = new RegExp('\\d{5}','g'); //全局匹配字符串中的5个数字,注意这里是//而不是/
以上就是为大家整理的关于js正则表达式学习笔记,希望对大家学习js正则表达式有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部