公司之前有个胖女孩说你竟然会正则? 其实正则没那么难;今天我们说说他常用的几个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);
}

最新文章

  1. python scipy学习-曲线拟合
  2. Android 如何解决数据库多线程锁的问题
  3. 利用SQLiteOpenHelper来管理SQLite数据库 (转)
  4. JMX学习笔记(二)-Notification
  5. jQuery插件- Autocomplete应用详解
  6. css案例学习之按钮超链接
  7. Learning React Native笔记
  8. JAVA中double类型运算结果异常的解决
  9. 用python做一个烟花show
  10. Android、IOS文字居中偏离的解决方案
  11. 【托业】【新托业TOEIC新题型真题】学习笔记9-题库七+八--P4-5
  12. Java编程的逻辑 (16) - 继承的细节
  13. 2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest (5/9)
  14. [Winform]缓存处理
  15. Java之集合(二十二)PriorityBlockingQueue
  16. par函数family参数-控制文字的字体
  17. python tensorflow keras
  18. python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)
  19. Docker微容器Alpine Linux
  20. python实战===python程序打包成exe

热门文章

  1. Yii 时间日期组件与composer 下载中出现的问题
  2. buf.readUInt16BE()
  3. Volume 6. Mathematical Concepts and Methods
  4. 使用js将Unix时间戳转换为普通时间
  5. 斯特林公式 hdu1018
  6. 2.2 convex hull凸包
  7. HDU——1134 Game of Connections
  8. MS SQL SERVER 书BOOK
  9. Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
  10. ORACLE-020:ORACLE技巧002 批量操作表