JS_js正则运用,正则表达式详解

正则表达式

元字符

.   查找单个字符,除了换行和行结束符
\b	精确查询
\B	模糊查询
\d	只能匹配数字	
\D	只能匹配非数字
\w	匹配数字,字母,下划线
\W	匹配  除  数字,字母,下划线
\s  查找空白字符
\S  查找非空白字符
\0  查找NUL字符
\n  查找换行符
\f  查找换页符
\r  查找回车符
\t  查找制表符
\v  查找垂直制表符
\xxx  查找以八进制数xxxx规定的字符
\xdd  查找以十六进制数 dd 规定的字符
\uxxxx  查找以十六进制 xxxx规定的Unicode字符

重复类量词列表

+	表示前一个模式可以被重复1次或多次
*	表示前一个模式可以被重复0次或者n次
?	表示前一模式可以被匹配0次或者1次
{x}	表示前一模式可以被重复x次
{x,y} 表示前一模式可以被重复x到y次
{x,}  表示匹配至少x个n的序列的字符串

正则表达式支持的边界量词

^	代表字符串的开头
$	代表字符串的结束

描述字符范围

[ ]	匹配指定一堆字符中的一个 a-z
[^]	不匹配这个集合中任意一个字符
()	可以指定一堆字符来匹配一个模式
|	指定几个规则只要匹配一个规则即成功匹配
\	+ *等等有特殊含义的字符,可以用\做转义

修饰符

/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个
/i  表示匹配的时候不区分大小写
/m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号

正则方法

exec()

匹配字符串中信息,匹配到返回数组

方法用于检索字符串中的正则表达式的匹配。
语法:RegExpObject.exec(string)
参数:字符串
返回:匹配结果的数组。如果没有找到,返回值为 null
string 必需。要检索的字符串。

var str = "Visit Abcjygkng"; 
var patt = new RegExp("Abcjygkng","g");
var result;
while ((result = patt.exec(str)) != null)  {
  document.write(result);				//Abcjygkng
  document.write("<br />");
  document.write(patt.lastIndex);		//14
}

test()

效验字符串,如手机号,省份证号等

方法用于检测一个字符串是否匹配某个模式
语法:RegExpObject.test(string)
参数:字符串
返回:布尔值,表示是否匹配 ,如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
string 必需。要检测的字符串。

var phone = "13955555555"
/^1[3456789]d{9}$/.test(phone)			//true

search()

获取字符串中第一次出现的索引值

方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
语法:stringObject.search(regexp)
参数:正则表达式
返回:匹配起始位置。如果没有找到任何匹配的字符串,则返回 -1
regexp 该参数可以是需要在 stringObject 中检索的子串,也可以是需要检索的 RegExp 对象。

var str="Visit wdfadf!"
document.write(str.search(/wdfadf/))		//6

match()

正则匹配字符串中符合条件的类容

方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
语法:stringObject.match(searchvalue) 和 stringObject.match(regexp)
参数:正则表达式
返回: 匹配的数组,或者匹配信息的数组
searchvalue 必需。规定要检索的字符串值。
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。

var str="1 plus 2 equal 3"
document.write(str.match(/\d+/g))		//1,2,3

replace()

替换字符串中文本

方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法:stringObject.replace(regexp/substr,replacement)
参数:正则表达式和替换文本
返回:返回替换后的新字符串,一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
regexp/substr 必需。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript");		//JavaScript Tutorial

split()

分割字符串

方法用于把一个字符串分割成字符串数组。
语法:stringObject.split(separator,howmany)
参数:正则表达式或分割字符
返回:数组 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

"hello".split("")		//["h", "e", "l", "l", "o"]
"hello".split("", 3)	//["h", "e", "l"]

语法大全外链:https://juejin.im/post/6844903487155732494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值