公司之前有个胖女孩说你竟然会正则? 其实正则没那么难;今天我们说说他常用的几个API。
在讲方法之前, 我们先对正则表达式做一个基本的了解:
1、正则表达式定
公司之前有个胖女孩说你竟然会正则? 其实正则没那么难;今天我们说说他常用的几个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= /^((0\d{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