JavaScript正则表达式(一)-常用方法

公司之前有个胖女孩说你竟然会正则? 其实正则没那么难;今天我们说说他常用的几个API。

在讲方法之前, 我们先对正则表达式做一个基本的了解:

1、正则表达式定义使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

2、英语:Regular Expression,在代码中常简写为regex、RegExp或RE。

3、多用于文本搜索和文本替换,以及条件判断。

test方法:返回Boolean

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/g
reg.test(str) // true
reg.test(result) // flase

} // -作用域-

 

search方法:返回第一个找到的子项的index

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/g
str.search(reg) // 1(曹操的操字,index:1)
result.search(reg) // -1(没有找到操或者草字,index:-1)

} // -作用域-

 

replace方法:替换匹配到的子项

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/g
str.replace(reg,'*') // "曹***的收拾了屋子,去*场约会去咯"
result.replace(reg,'*') // "结果他被放鸽子了"

} // -作用域-

 

match方法:

全局查找‘g’时:返回所有匹配的子项,返回值是Array

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/g
str.match(reg) // ["操", "草", "草", "操"]
result.match(reg) // null

} // -作用域-

 非全局查找时:返回一个集合:[匹配子项,index,input,groups]

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/
str.match(reg) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]

} // -作用域-

exec方法:

全局匹配时 reg.exec(str) 会依次匹配子项,直到匹配完成

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/g // 全局匹配
console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // ["草", index: 2, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // ["草", index: 3, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // ["操", index: 12, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // null

} // -作用域-

非全局匹配:

{ // -作用域-

let str = "曹操草草的收拾了屋子,去操场约会去咯"
let result = "结果他被放鸽子了"
let reg = /[草|操]/ // 非全局匹配
console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]

} // -作用域-

 关于test方法,这里提供一些常用的正则验证方法:

 下一期我们介绍正则的写法

// 是否带有小数
function    isDecimal(strValue )  {  
   var  objRegExp= /^d+.d+$/;
   return  objRegExp.test(strValue);  
}  

// 校验是否中文名称组成
function ischina(str) {
    var reg=/^[u4E00-u9FA5]{2,4}$/; // 定义验证表达式
    return reg.test(str); // 进行验证
}

// 校验是否全由8位数字组成
function isStudentNo(str) {
    var reg=/^[0-9]{8}$/;
    return reg.test(str);
}

// 校验电话码格式
function isTelCode(str) {
    var reg= /^((0d{2,3}-d{7,8})|(1[3584]d{9}))$/;
    return reg.test(str);
}

// 校验邮件地址是否合法
function IsEmail(str) {
    var reg=/^w+@[a-zA-Z0-9]{2,10}(?:.[a-z]{2,4}){1,3}$/;
    return reg.test(str);
}

 

 

生活不易,请继续努力,在未来的路上,愿你步伐坚定且内心温柔。——ziChin
原文地址:https://www.cnblogs.com/ziChin/p/10100515.html