您现在的位置是:首页 > 技术学习 > javascript 网站首页 技术学习 javascript
JS中的正则
- 技术学习
- 2019-05-27
- 410已阅读
- 0
简介
正则可以规定在文本或字符串中要检索或替换的内容,可以是表达式的形式。然后可以在文本或字符串中匹配自己给定好的内容。
正则可以规定在文本或字符串中要检索或替换的内容,可以是表达式的形式。然后可以在文本或字符串中匹配自己给定好的内容。
1. JS中的正则表达式写法
1. var reg = new RegExp('表达式',flag);
2. var reg = /表达式/flag;
注:
flag:修饰符,修饰符可以同时写多个。
1. i : 忽略大小写;
2. g : 全局匹配;
3. m : 多行匹配;
2. 正则中字符的含义
. : 任意字符(除换行符外);
\d : 数字0-9;
\D : 非数字0-9的字符;
\w : 0-9或a-z或A-Z或_ ;
\W : 除数字字母下划线以外的字符;
\s : 空格、TAB、换页符、换行符;
\S : 非\s;
\r : 回车;
\n : 换行;
\v : 垂直制表符;
\t : 制表符;
\f : 换页符;
3. 正则中的选择、分组
1. | : 选择(或);
// 例:/ab|cd/ 表示匹配ab或者cd,只要一个匹配就能匹配成功;
2. () : 分组;正则中的(),先正常匹配,然后把匹配到的值以括号为单位分组;
// 返回值里面会以括号为单位进行分组后以数组形式返回。可以用下标取到里面对应的值;
例:
var str = 'aabbccdd';
var reg1 = /(aa)(bb)/ ;
str.match(reg1);
// ['aabb','aa','bb']; 不仅匹配到了aabb还把两个括号中匹配到的值分别显示了出来。
var reg2 = /aa(bb)/;
str.match(reg2); // [aabb, bb]
var reg3 = /(a+)(b)+(c)+/;
str.match(reg3); // ['aabbcc','aa','b','c']
var reg4 = /(a)(b)(c)/;
str.match(reg4); // null,没匹配到'abc',也不会分组;
4. 正则中的范围符号
[] : 字符范围内;
// 例:[0-9]数字0-9;[a-n]小写字母a到n;[0-9A-Za-z]数字0-9小写a-z大写A-Z;
[^] : 字符范围外;
// 例:[^0-9]数字0-9以外的字符;
^ : 行首(书写时写在开头);
// 例:^Hi以Hi开头的字符;^[0-9]以数字0-9开头的字符;^[^0-9]以非数字开头的字符;
$ : 行尾(书写时写在最后);
// 例: Hi$以Hi结尾的字符;
\b : 单词边界;
// 例:\bhello匹配前面有空格的单词hello;
\B : 非\b;
// 例:\Bhello匹配前面没有空格的单词hello;
[\u4e00-\u9fa5] : 匹配中文;
5. 正则中的量词
{n,m} : 最少出现n次,最多出现m次;
{n,} : 最少出现n次;
{,m} : 最少出现0次(既没有),最多出现m次;
{n} : 刚好出现n次;
? : 代表{0,1};
* : 代表{0,};
+ : 代表{1,};
例:/a{5}/ 表示正好连续出现5个小写a的字符;
6. 正则中的字符串转译
\ : 用于转译字符;(即通常在"\"后面的字符不按原来意义解释)
有时候我们匹配一些特殊的字符时,比如:.,\,/,^,$,+,?,|,(,[,),{,],}
等有特殊含义的字符时,需要加上 \
进行转译,将其转译为单纯的一个字符 。
例:当我们要匹配一个美元符 $ 时,不能直接写 $ ,因为一个 $ 代表行尾,所以要用 \$
这代表单纯匹配一个美元符。
7. 正则常用的函数
1. search(); // 返回首次匹配到的值的下标。
str.search(reg);
2. match(); // 返回首次匹配的值,若正则表达式里面有用g声明全局匹配,则返回所有满足匹配条件的值。
str.match(reg); // 返回值是一个数组
var a = 'aabcfa';
var reg1 = /a/;
var reg2 = /a/g;
a.match(reg1); // ['a'];
a,match(reg2); // ['a','a','a'];
3. replace(正则,替换内容); // 替换首次匹配到的值,若正则声明全局匹配,则替换所有匹配到的值;
var a = 'aabbcca';
var reg1 = /a/;
var reg2 = /a/g;
a.replace(reg1,'b'); // babbcca;
a.replace(reg2,'b'); // bbbbccb;
4. test(); // 用于检测能否匹配到值,返回值为布尔值,匹配到为true;否则为false;
// 注: 使用方法是正则写在前面,字符串写括号里
reg.test(str);
var a = 'abc';
var reg1 = /a/;
var reg2 = /d/;
reg1.test(a); // true;
reg2.test(a); // false;
相关文章
- javascript基础
- JS函数前面加!、+、-、~符号以及;是什么意思、按位取反
- JS中的数据类型
- JS的内置对象(Date、String、Array、Math、Event)
- 浏览器对象(Window、History、Location、Navigator、Screen)
- DOM对象
- JS事件绑定、冒泡/捕获、常见的兼容处理、委托、阻止默认行为和冒泡
- 通过file按钮上传的图片如何在当前页面显示出来 FileReader
- JS、Jquery中jsonp的原理以及使用方法
- JS中新增的对象:Map、Set
- JS生成器 - generator
- JS中的块级作用域,var、let、const三者的区别