js正则表达式

js正则表达式

目录

  • 正则表达式定义及作用
  • 字符串方法使用正则表达式
  • 修饰符及模式
  • RegExp对象
  • 实际用例
  • 正则在线工具

正则表达式定义及作用

定义

使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式

语法

/正则表达式主体/修饰符(可选)

作用

  • 文本搜索
  • 文本替换

字符串方法使用正则表达式

search()方法

检索与正则表达式相匹配的子字符串,并返回子串的起始位置

代码实例

var str = 'HvGege'
var n = str.search(/ge/i)
console.log(n)

输出结果

2

代码解释

  • i是一个修饰符, 表示搜索不区分大小写
  • search()方法也可以用于检索字符串中指定的子字符串

replace()方法

替换第一个与正则表达式匹配的子串

代码实例

var str = 'HvGege'
var str1 = str.replace(/ge/ig, "gege")
console.log(str1)

输出结果

Hvgegegege

代码解释

  • g是修饰符, 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
  • 修饰符可以叠加, 此处使用两个修饰符i,g

修饰符及模式

修饰符

  • i执行对大小写不敏感的匹配
  • g执行全局匹配
  • m执行多行匹配

表达式

  • [abc]查找方括号之间的任何字符
  • [0-9]查找任何从0至9的数字
  • (x|y)查找任何以|分隔的选项

元字符

  • \d查找数字
  • \s查找空白字符
  • \b匹配单词边界

量词

  • n+匹配任何包含至少一个n的字符串
  • n*匹配任何包含零个或多个n的字符串
  • n?匹配任何包含零个或一个n的字符串

RegExp对象

RegExp对象是一个预定义了属性和方法的正则表达式对象

test()方法

用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false

代码实例

var patt = /e/
console.log(patt.test("hvgege"))

输出结果

true

代码解释

  • 实例用于搜索字符串中的字符 “e”
  • 字符串中含有 “e”, 则实例中输出true

exec()方法

用于检索字符串中的正则表达式的匹配, 返回一个对象,其中存放匹配的结果, 如果未找到匹配,则返回值为 null

代码实例

var patt = /e/
console.log(patt.exec("hvgege"))

输出结果

["e", index: 3, input: "hvgege", groups: undefined]

代码解释

  • 实例用于搜索字符串中的字母 “e”
  • 字符串中含有 “e”, 所以该实例输出对象

实际用例

校验电话格式

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);
}

正则在线工具

正则表达式在线测试工具

http://tools.jb51.net/regex/javascript

正则表达式在线生成工具

http://tools.jb51.net/regex/create_reg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 字节跳动前端实习面经

    viewport 是用户网页的可视区域。 手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,...

    星辉
  • js实现自定义滚动条

    星辉
  • Mac 常用工具

    Speed up, slow down, advance and rewind any HTML5 video with quick shortcuts.

    星辉
  • 正则&highlight高亮实现(干货)

    写完正则表达式以后在浏览器上检测实在是不方便,于是就写了一个JS正则小工具,大大地提高了学习效率。学习之余用正则实现了一个highlight高亮demo,欢迎交...

    牧云云
  • 刨根究底正则表达式之一——正则表达式简介

    虽然本系列文章开篇会简单介绍正则表达式的一些基础知识,但主要限于本系列文章所想强调的要点,因此本系列文章并不适合用于入门。

    用户1876609
  • hdu1010

    @坤的
  • (二十八)golang--二维数组

    绝命生
  • SerDes知识详解

    也存在一些介于SerDes和并行接口之间的接口类型,相对源同步接口而言,这些中间类型的接口也使用串行器(Serializer)解串器(Deserializer)...

    碎碎思
  • OpenGL API 简介

    开发基于 OpenGL 的应用程序,必须先了解 OpenGL 的库函数。它采用 C 语言风格,提供大量的函数来进行图形的处理和显示。OpenGL 库函数的命名方...

    用户2930595
  • Android真机调试的时候logcat中无法输出调试信息的解决办法

    真机调试不输出日志到logcat的原因是手机厂商默认关闭了调试打印的功能,通过以下方法开启此方法。 下面以华为P6手机为例进行操作: 1、在拨号界面输入:*#*...

    用户1215536

扫码关注云+社区

领取腾讯云代金券