前言:正则表达式时处理字符串中常用的手法,本文以简单的方式,快速展示了JavaScript中正则相关的基础知识点。文末还提供了几个简单的正则相关面试题。个人总结,如有错误,还望指正,

JavaScript正则表达式快速入门

两种新建语法

字面量法

varpatt=/w/i;

RegExp对象法

(1)varpatt=newRegExp('/w/i');

(2)varpatt=newRegExp('w','i');

其中第二个变量表示修饰符,在ES5中,(1)方法不允许加第二个变量,ES6中则允许,且后面的修饰符会覆盖原修饰符。

五个修饰符

i:忽视大小写
g:全局匹配
m:多行匹配
u:用于处理大于uFFFF的字符(ES6新增)
y:类似g,但是有粘连特点(ES6新增)

部分属性

1、reg.sticky

用于检测是否设置y修饰符,返回true/false(ES6新增)

2、reg.source

返回表达式正文(ES5)

3、reg.flags

返回修饰符(ES6新增)

量词系列

基础量词

?(0或1)
*(0个及以上)
(1个及以上)

开头结尾

^开头
$结尾

指定量词

{x}指定数量
{x,}大于X数量
{x,y}x,y之间

特殊

?=str后面紧接str的

?!str后面没有紧接str的

语法系列

RegExp方法

1、compile方法

patt.compile(newPatt)

用于编译正则,或者改变正则内容

2、exec方法

patt.exec(str)

如果找到了,返回相应的字符串,如果没有,返回null

3、test方法

patt.test(str)

如果找到了,返回true,否则返回false

String方法

1、search()

str.search(patt)

如果找到了,返回起始位置,否则返回-1

2、match()

str.match(patt)

返回一个数组,没有找到返回null

3、replace()

str.replace(patt,newValue)

替换指定的内容

4、split()

str.split('patt')

以指定内容分割为数组

部分题目

题目一:正则校验电子邮箱

varcheckEmail=function(email){varpatt=/^([0-9A-Za-z\-_\.])@([0-9a-z]\.[a-z]{2,3}(\.[a-z]{2})?)$/ireturnpatt.test(email);}//另一种写法/^(\w)(\.\w)*@(\w)((\.\w{2,3}){1,3})$/;

题目二:为string添加去除前后空白字符的函数trim()

String.prototype.trim=function(){returnthis.replace(/^\s|\s$/g)}

题目三:为数字添加','分割符,例如123456789输出123,456,789

functioncommafy(num){returnnum