js正则表达式

2017-12-25  本文已影响0人  xin激流勇进

定义正则表达式

JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$, m模式也会使用^$来匹配换行的内容)


匹配

JavaScript中支持正则表达式,其主要提供了两个功能:

test(string)

检查字符串中是否和正则匹配

n = 'uui99sdf'
reg = /\d+/
reg.test(n)  ---> true
 
# 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$

exec(string)

获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。

非全局模式
获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)

var pattern = /\bJava\w*\b/;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

var pattern = /\b(Java)\w*\b/;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

全局模式
需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕

var pattern = /\bJava\w*\b/g;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

var pattern = /\b(Java)\w*\b/g;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

字符串中相关方法

obj.search(regexp)
获取索引位置,搜索整个字符串,返回匹配成功的第一个位置(g模式无效)

obj.match(regexp)
获取匹配内容,搜索整个字符串,获取找到第一个匹配内容,如果正则是g模式找到全部

obj.replace(regexp, replacement)
替换匹配替换,正则中有g则替换所有,否则只替换第一个匹配项,
$数字:匹配的第n个组内容;
$&:当前匹配的内容;
$`:位于匹配子串左侧的文本;
$':位于匹配子串右侧的文本
$$:直接量$符号

上一篇下一篇

猜你喜欢

热点阅读