JavaScript中的正则表达式
2016-04-06 17:26
429 查看
JavaScript 正则表达式的构成方式
字面量/pattern/flags
pattern是表达式文本
flags是特殊参数:
g——全局匹配;
i——忽略大小写;
m——让开头(^)和结尾($)字符工作在多行模式(由 \n 或 \r 分割的)
多行模式:每一行的开头结尾也可匹配。关闭多行模式则只匹配整个字符串的开头和结尾
静态常量:构造完成后保持不变
- 构造函数:
new RegExp("pattern","flags")
pattern是字符串,注意对 \ 的转义(” \\ “)
运行时编译→表达式可变
表达式文本由普通字符、特殊字符以及对应的重复规则组合而成。
例子:
/abc/匹配字符串中的’abc’子串
特殊字符
★ 特殊字符都是单个字符!字符类别
.英文句点,小数点——匹配任意单个字符(换行符除外)
\d一个数字
[0-9];
\D一个非数字
[^0-9]
\w一个字母或数字或下划线
[a-zA-Z0-9_];
\W一个非字母非数字非下划线的字符
[^a-zA-Z0-9_]
\s一个空白符;
\S一个非空白符
\xhh一个编码为两位十六进制数(hh)的字符(ASCII码)
\uhhhh一个Unicode字符,四位十六进制数
其他:RexExp-MDN
字符集合
[abcde]匹配集合中的任意一个字符。abcde 等价于 a-e
[^abcde]匹配任意一个不在集合中的字符。abcde 等价于 a-e
边界
^开头(字符串或每行)
$结尾(字符串或每行)
\b单词边界
\B非单词边界(内部)
分组
捕获括号(pattern):匹配表达式并保存括号内的字符串。
replace()函数的第二个参数中使用
$1,
$2,…
$9获取
反向引用
\n(n是正整数):指向正则表达式中左起第 n 个括号所匹配的字符串
非捕获括号
(?:pattern):匹配但不保存
//不大理解。放上另一个说法:分组用于指定子表达式,单独确定重复次数或其他操作。参考
数量词(表达式或分组的重复次数)
位于表达式后面*:0或多次
+:1或多次
?:0或1次
{n,}:至少 n 次
{n,m}:至少 n 次,至多 m 次
默认匹配模式是贪婪模式,即一个匹配结果包含尽可能多的字符。在上述数量词后加上一个 ? 就设置成非贪婪模式,即一个匹配结果包含尽可能少的字符。
★ 另有一条更高优先级的匹配规则:最先开始的匹配拥有最高优先权
{n}:n次(多于 n 时也只匹配n次,无所谓贪婪懒惰)
x(?=y):只有当 x 后面紧跟着 y 时,才匹配 x 。
x(?!y):只有当 x 后面不紧跟着 y 时,才匹配 x 。
x|y:匹配 x 或 y 。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- msql 正则表达式
- 正则表达式
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法