公司之前有个胖女孩说你竟然会正则? 其实正则没那么难;今天我们说说他常用的几个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. Python学习-字符串函数操作3

    字符串函数操作 isprintable():判断一个字符串中所有字符是否都是可打印字符的. 与isspace()函数很相似 如果字符串中的所有字符都是可打印的字符或字符串为空返回 True,否则返回 ...

  2. APUE 文件和目录

    文件和目录 Unix 所有的文件都对应一个 struct stat,包含了一个文件所有的信息. #include <sys/stat.h> struct stat { mode_t st_ ...

  3. codeforces 373 A - Efim and Strange Grade(算数模拟)

    codeforces 373 A - Efim and Strange Grade(算数模拟) 原题:Efim and Strange Grade 题意:给出一个n位的实型数,你可以选择t次在任意位进 ...

  4. CodeForces 1000F One Occurrence

    You are given an array $a$ consisting of $n$ integers, and $q$ queries to it. $i$-th query is denote ...

  5. [luoguP3052] [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper(DP)

    传送门 输出被阉割了. 只输出最少分的组数即可. f 数组为结构体 f[S].cnt 表示集合 S 最少的分组数 f[S].v 表示集合 S 最少分组数下当前组所用的最少容量 f[S] = min(f ...

  6. CodeForces 370C

    这道题其实是挺简单的.首先很容易发现最多人用的颜色的人数如果大于n/2,就肯定不能让全部人都成功戴上两只不同颜色的手套.反过来想,如果这个人数小于等于n/2又如何呢?的确,这就能让全部人都能戴上两只不 ...

  7. [kuangbin带你飞]专题六 最小生成树 N - 畅通工程再续

    相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全 ...

  8. [bzoj 2463]谁能赢呢?(博弈论)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2463 分析:因为都是按最优策略,所以棋盘肯定都能走满,于是胜负关系就是判断n*n的奇偶 ...

  9. 非常适合新手的jq/zepto源码分析04

    $.extend = function(target){ var deep, args = slice.call(arguments, 1) if (typeof target == 'boolean ...

  10. sqlacodegen

    这个工具可以把数据库的表转成sqlalchemy用的class. 但是 table必须要有主键.否则转化成的是Table类型而不是class root@rijx:/tmp# sqlacodegen - ...