您的位置:首页 > Web前端 > JavaScript

JS之正则表达式相关

2016-02-23 16:55 344 查看

正则概述

定义: 规定字符串中字符出现规则的表达式

RegExp对象: 封装了一条正则表达式, 提供了使用正则表达式验证和查找的方法

如何创建正则表达式对象:

var exp = /正则表达式/gi;

var exp = new RegExp(“正则表达式”,”gi”);

正则表达式中所有\都要写成\

贪婪模式: 默认情况下,正则表达式都会匹配尽量长的字符串

懒惰模式: 只匹配最短的符合条件的字符串

贪婪模式转懒惰模式方法: 量词后加?

正则使用

何时使用: 查找、验证、替换、切割

规则:

最简单的正则表达式: 关键词原文 —— 必须和原文完全匹配

备选字符集: 规定某一位字符的备选字符列表, 必须且只能多选一

如: 我[爱恨]你

如果备选字符的unicode号连续, 可用-符号连接开头字符和结尾字符

如: [0-9]

[^…]: 表示否定字符集

预定义字符集: 针对常用的备选字符集提供的简化符号

\d: 数字

\w: 字母数字或下划线

\s: 空字符, 空格、制表符、换行

.: 除换行外, 其余所有字符

量词: 规定字符集出现的字数, 默认一个量词, 仅修饰左侧紧邻的字符集

确定数量

{m,n} : 至少m个, 至多n个

{m,} : m个以上

{m} : 必须m个

不确定数量

* : 可有可无, 多了不限

+ : 1个以上

? : 可有可无, 最多一个

选择和分组

选择: | 读作”或”

分组: ()

何时使用: 如(+86|0086)?\s*1[34578]\d{9}

指定匹配位置

开头: ^

结尾: $

何时使用: 验证时必须前加^后加$

零宽断言

(?!exp)为零宽断言, 表示断言之后不能为exp

正则API

查找

var arr = exp.exec(str); //同时获得关键字的内容和位置

exec每次只能找到下一个匹配的关键词

arr[0]保存了本次找到的关键词内容, 如果找不到, 返回null

arr.index属性保存本次找到的关键词的首字母位置

验证

var bool = exp.test(str); //验证str是否符合exp的格式

符合返回true, 不符合返回flase

何时使用

验证格式时

如何使用

可直接放入if中, 作为条件

获得本次查找结果中的部分内容: 2步

在正则表达式中用(), 包裹住需要获取的部分

在本次查找的同时, 使用RegExp.$n, 获得第n个括号中匹配的子内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: