一、正则常用的方法
1.test ()
example:
let str = '1235789353'
let re = /\D/
if ( re.test ( str ) ) {
console.log("不全是数字")
} else {
console.log("全是数字")
}
2.search () 字符串搜索符合正则的内容,返回出现的位置。
let str = 'abcd'
let re = /\B/i
console.log( str.match( re ) )
3.match () 在字符串中搜索符合正则的内容,返回字符串。
let str = '123da456ad'
let re = /\d+/g
console.log( str.match( re ) )
4.replace()
let str = '我爱北京天安门'
let re = /北京|天安门/
consolo.log( str.replace( re, '*') )
replace第二个参数为回调函数
let str2 = str.replace(re, function (str) {
return new Array( str.length + 1 ).join( '*' )
})
5.exec()搜索符合规则的内容,返回内容
let str = 'now, test123 and test456'
let re = /test(\d+)/
console.log( re.exec(str) )
二、正则表达式字符
\s空格
\S非空格
\d数字
\D非数字
\w字符
\W非字符
()分组符
[]集合取一
[^a]排除
\b独立部分
\B非独立部分
/ \(a) (b) (c) \1/重复第一个子项
三、面试题
1.字符串中重复最多的字符
let str = 'aaaabbcccddd'
let arr = str.split('').sort().join('')
let re = /(\w)\1+/g
let index = 0
let value = ''
str.replace(re, function ($0, $1) {
if ($0.length> index) {
index = $0.length
value = $1
}
})
2.去掉前后空格
function trim (str) {
let re = /^\s+|\s$/
return str.replace(re, '')
}
3.匹配中文
[\u4e00-]u9fa5]
参考:https://www.cnblogs.com/moqing/archive/2016/07/13/5665126.html