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

JavaScript正则表达式(一)-常用方法的更多相关文章

  1. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  2. 【JS】javascript 正则表达式 大全 总结

    javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...

  3. 理清JavaScript正则表达式--上篇

    在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...

  4. 理清JavaScript正则表达式--下篇

    紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...

  5. JavaScript正则表达式详解(一)正则表达式入门

    JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...

  6. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  7. Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识

    本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  8. JavaScript正则表达式下——相关方法

    上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实 ...

  9. JavaScript 正则表达式上——基本语法

    定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...

  10. 正则表达式入门教程&&经典Javascript正则表达式(share)

    前言 例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 ...

随机推荐

  1. apacheAB测试指标

    在进行性能测试过程中有几个指标比较重要: 1.吞吐率(Requests per second) 服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数.某个并 ...

  2. Linux 中设置 MySQL 字符集为 UTF-8

    (1)查看 MySQL 字符集 登录 mysql:mysql -u root -p 查询 mysql 字符集:mysql> show variables like 'chara%'; 说明:将 ...

  3. pipreqs(找当前项目依赖的包)

    pipreqs pipreqs可以帮你找到当前项目的所有组件及其版本.就是当别人给你一个程序的时候,你要在自己电脑上运行起来,就需要安装程序所依赖的组件,总不能自己一个一个找吧. # 安装 pip3 ...

  4. 调用OpenSSL实现RSA加解密和签名操作

    调用OpenSSL实现RSA加解密和签名操作 RSA公钥可以从证书和公钥文件,RSA私钥可以从私钥文件中提取.OpenSSL使用了一种BIO抽象IO机制读写所用文件,可以打开文件相关联的BIO,通过B ...

  5. python3的dict

    dict1 = {getlistUrl:getlistData,getskuUrl:getskuData, approveUrl:approveData, approvedlistUrl:approv ...

  6. [bzoj1005][HNOI2008][明明的烦恼] (高精度+prufer定理)

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...

  7. angular中多个promise的合并处理

    all()方法 这个all()方法,可以把多个primise的数组合并成一个.当所有的promise执行成功后,会执行后面的回调.回调中的参数,是每个promise执行的结果.当批量的执行某些方法时, ...

  8. N的阶乘 mod P

    基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)   例如:n = 10, P = 11,10 ...

  9. 【ZJOI2017 Round2练习】

    ………………………………………………………………………… DAY1:听说是湖南的题 T1:spaly?毫无想法,写个暴力压压惊 T2:尼克杨问号脸 T3:FFT我不会啊,70points已经尽力了

  10. ACM 数学

    欧几里得辗转相除法求最大公约数 int gcd(int a,int b) { ) return a; else return gcd(b,a%b); } 求组合数 int C(int n ,int m ...