JS正则表达式

正则表达式对象的创建

  1. 构造函数
    var pattern =new RegExp(“正则表达式”,“修饰符”);
    修饰符只能是g m i,可以省略
    var pattern =new RegExp(“abc”,“ig”);
  2. 字面量
    var pattern = /正则表达式/修饰符;
    var pattern = /abc/ig;

修饰符
i:ignore case 不区分大小写
m:multiline 多行匹配
       如果目标字符串中没有\n的话,m修饰毫无意义
g:global 全词匹配
       如果加了这个修饰符的话,在匹配时会维护一个lastIndex的属性,用来记录当前匹配到这个字符串时的结束的位置,下一次匹配会从lastIndex开始。

方法

  1. exec(参数) ——执行正则,从参数获取目的字符串
    参数:字符串
    返回值:类数组对象
    [数组(查询到的结果),index(索引),input(操作的字符串),…]
var pattern=/abc/g;
var str="abc";
var result=pattern.exec(str);//console.log(pattern.exec(str));
console.log(result);
//结果:[ 'abc', index: 0, input: 'abc', groups: undefined ]
  1. test()——用来检测一个字符串是否匹配某个模式
    参数:字符串
    返回值:boolean类型 true/false
var pattern=/abc/i;
var str='hello 123 abc";
console.log(pattern.test(str));//true
  1. toString()——转为字符串
    参数:无
    返回值:string
//var pattern=/abc/i;
var pattern=new RegExp("abc","i");
console.log(pattern.toString());

原型属性 RegExp.prototype.
global
ignoreCase
multiline
lastIndex
source
flags (修饰符)

String对正则表达式的支持

函数名调用者功能参数返回值注意
match()string从一个字符串中将符合条件的内容提取出来正则表达式数组(匹配成功结果组成的数组)只会找到第一个符合条件的内容,可以设置为全局匹配
search()string搜索字符串中是否含有指定内容正则表达式,如果参数不是正则表达式,会先用RegExp将其转为构造函数匹配成功返回第一个成功的位置,如果不成功返回-1(同indexOf)不支持全局检索
replace()string检索替换第一个参数是正则表达式,第二个参数是要替换的字符串替换后的string不影响原来的字符串
split()string将一个字符串拆分非一个数组正则表达式,可以根据正则表达式去拆分字符串拆分后的数组

正则表达式的规则

  1. 字符类
字符作用
.用来匹配任意单个字符,行结束符除外
\d匹配任意的一个阿拉伯数字;等价于[0-9]
D匹配任意一个不是阿拉伯数字的字符;等价于[^0-9]
\w匹配任意字母、数字、包括下划线;等价于[A-Za-z0-9_]
\W匹配任意不是字母、数字、下划线;等价于[^A-Za-z0-9_]
\s匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格
\S匹配一个非空白符
^表示匹配输入开始
$表示匹配输入结尾
  1. 字符集
    [xxx] 一个字符集合,也叫字符组,匹配集合中的任意一个字符。可以通过-来指定范围。
    例如:[012]、[0-9]、 [a-z]…
    [^xxx] 反义字符,它匹配任意不在括号内的字符。可以通过-来指定范围。
    例如:[^123ab] 、 [^a-z]…
    3.其它
    x|y 匹配x或y
    x{n} n是一个正整数。前面的模式 x 连续出现 n 次时匹配
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值