正则表达式RegExp语法与用法详解

正则表达式RegExp语法与用法详解

什么是正则表达式?

正则表达式是一种通用的字符匹配模式,可以用来进行字符串的查找替换、格式验证等操作。在许多编程语言中都具有很重要的地位。

正则表达式定义

一个正则表达式是由普通字符(例如字符 a 到 z )以及特殊字符(称为元字符)组成的文字模式。模式描述了要匹配的字符类型或顺序。

在JavaScript中,使用RegExp类来创建正则表达式,语法格式如下:

var regExp = new RegExp(pattern, attributes);

其中,pattern参数为正则表达式模式,attributes是可选的修饰符,具体可选值有:

  • g 全局匹配
  • i 忽略大小写
  • m 多行匹配

例如,创建一个匹配所有数字的正则表达式可以写为:

var regExp = new RegExp("\\d");

var regExp = /\d/;

两者的效果是相同的,\d是正则表达式中的特殊字符,表示匹配任意一个数字字符。

常用元字符

.(点)

.是正则表达中的一个特殊字符,表示匹配任意一个字符,例如:

var regExp = /a.b/; // 匹配一个字符为 a 一个字符为 b 的字符串
console.log(regExp.test("abc")); // true
console.log(regExp.test("abb")); // false

[](字符组)

字符组用于指定一个字符集合,匹配时字符串中该位置的字符必须是集合中的任意一个,例如:

var regExp = /[ab]/; // 匹配一个字符为a或b的字符串
console.log(regExp.test("a")); // true
console.log(regExp.test("b")); // true
console.log(regExp.test("c")); // false

[^](非字符组)

与字符组相反,[^]用于指定一个字符集合,匹配时字符串中该位置的字符不能是集合中的任意一个,例如:

var regExp = /[^ab]/; // 匹配一个字符不为a或b的字符串
console.log(regExp.test("c")); // true
console.log(regExp.test("a")); // false
console.log(regExp.test("b")); // false

\d(数字字符)

\d表示匹配任意一个数字字符,等价于[0-9],例如:

var regExp = /\d/;
console.log(regExp.test("1")); // true
console.log(regExp.test("a")); // false

\D(非数字字符)

\D表示匹配任意一个非数字字符,等价于[^0-9],例如:

var regExp = /\D/;
console.log(regExp.test("a")); // true
console.log(regExp.test("1")); // false

\s(空白字符)

\s表示匹配任意一个空白字符(包括空格、制表符等),例如:

var regExp = /\s/;
console.log(regExp.test(" "));  // true
console.log(regExp.test("a"));  // false

\S(非空白字符)

\S表示匹配任意一个非空白字符,例如:

var regExp = /\S/;
console.log(regExp.test("a"));  // true
console.log(regExp.test(" "));  // false

\w(单词字符)

\w表示匹配任意一个单词字符(包括数字、字母、下划线),例如:

var regExp = /\w/;
console.log(regExp.test("a"));   // true
console.log(regExp.test("1"));   // true
console.log(regExp.test("_"));   // true
console.log(regExp.test(" "));   // false

\W(非单词字符)

\W表示匹配任意一个非单词字符,例如:

var regExp = /\W/;
console.log(regExp.test(" "));   // true
console.log(regExp.test("a"));   // false
console.log(regExp.test("1"));   // false
console.log(regExp.test("_"));   // false

常用量词

在正则表达中,使用量词来指定匹配的次数,常用量词如下:

* (零次或多次)

*表示匹配前面的字符出现零次或多次,例如:

var regExp = /ab*c/; // 匹配一个或多个b的字符串
console.log(regExp.test("ac"));    // true
console.log(regExp.test("abc"));   // true
console.log(regExp.test("abbbbbbc"));  // true
console.log(regExp.test("adc"));   // false

+ (至少一次)

+表示匹配前面的字符至少出现一次,例如:

var regExp = /ab+c/; // 匹配至少一个b的字符串
console.log(regExp.test("ac"));    // false
console.log(regExp.test("abc"));   // true
console.log(regExp.test("abbbbbbc"));  // true
console.log(regExp.test("adc"));   // false

? (零次或一次)

?表示匹配前面的字符零次或者一次,例如:

var regExp = /ab?c/; // 匹配一个或零个b的字符串
console.log(regExp.test("ac"));    // true
console.log(regExp.test("abc"));   // true
console.log(regExp.test("adc"));   // false

{n} (确定的重复次数)

{n}表示匹配前面的字符出现n次,例如:

var regExp = /ab{3}c/; // 匹配3个b的字符串
console.log(regExp.test("abbbc")); // true
console.log(regExp.test("abbc"));  // false
console.log(regExp.test("abbbbc"));// false

案例示范

下面通过一个案例来演示正则表达式的运用。

例一:验证电子邮箱

// 匹配任意一个由数字、字母、下划线、横杠、点号组成的字符串,并以 @ 符号作为分隔符号,后面是域名
var regExp = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*(\.[a-zA-Z]{2,})$/;

console.log(regExp.test("12345@qq.com"));  // true
console.log(regExp.test("1612658115@qq.com"));  // true
console.log(regExp.test("yll_1995@outlook.com"));  // true
console.log(regExp.test("128.com"));  // false

结语

以上就是正则表达式的语法和用法,需要注意的是,正则表达式是一项强大的工具,但也需要耐心和细心,多练习才能熟练掌握。

参考

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:正则表达式RegExp语法与用法详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • javascript变量提升和闭包理解

    请参考以下攻略: JavaScript变量提升 什么是变量提升? 变量提升是 Javascript 中的一种特性,它指的是在代码执行前,所有的变量声明都会被提升到代码的开头部分,但是赋值操作并不会被提升。也就是说,变量声明后的变量名可以在声明之前被使用,但是变量值会返回 undefined。 示例一: console.log(a); // Output: u…

    JavaScript 2023年6月10日
    00
  • JavaScript italics方法入门实例(把字符串显示为斜体)

    下面是详细的JavaScript italics方法入门实例攻略: 1. 概述 italics()是JavaScript的字符串方法之一,用于将字符串显示为斜体。该方法返回一个新的字符串,其中原字符串被包含在<i>标签中。 2. 语法 string.italics() 其中,string是调用该方法的字符串。 3. 示例 示例一 以下是一个简单的…

    JavaScript 2023年5月28日
    00
  • JavaScript实现简单的倒计时效果

    实现倒计时效果是网站开发中比较常见的需求之一,JavaScript可以轻松地实现倒计时功能。下面我将提供完整的攻略,详细讲解如何实现简单的倒计时效果。 1. 核心方法 实现倒计时的核心就是获取当前时间和目标时间,计算时间差,然后实现倒计时。下面是JavaScript代码实现核心方法: function countDown() { // 获取当前时间戳 con…

    JavaScript 2023年5月27日
    00
  • Html5新增了哪些功能

    HTML5是HTML最新的版本,它新增了许多新功能和更新了一些旧有的功能。下面将详细介绍HTML5新增的主要功能。 1. 语义化标签 HTML5新增了一些语义化标签,方便开发者更好地描述网页中的内容和结构,便于搜索引擎和屏幕阅读器解析。比如: <header> <h1>这是网站标题</h1> <nav> &lt…

    JavaScript 2023年6月11日
    00
  • js运动事件函数详解

    JS运动事件函数详解 在JS中,事件函数是编写交互逻辑的重要部分。其中,运动事件函数可以实现对象的平移、缩放、旋转等效果。本文将详细讲解JS中的运动事件函数,包括常见的函数、使用注意事项和两个示例说明。 常见的运动事件函数 以下是JS常用的运动事件函数: setInterval():重复调用一个函数或执行一段代码,间隔一定的时间(以毫秒为单位)。 setTi…

    JavaScript 2023年5月27日
    00
  • 用JavaScrip正则表达式验证form表单的方法

    下面是使用JavaScript正则表达式验证表单的攻略: 一、需求分析 JavaScript正则表达式可以对表单中的输入内容进行有效地验证。在使用正则表达式之前,首先需要明确以下几点: 要验证哪些内容,如表单中的用户名、密码、邮箱等; 需要验证的内容的限制条件,如密码必须包含大小写字母和数字等; 如果验证不通过,需要如何提示用户进行正确的输入。 二、编写正则…

    JavaScript 2023年6月10日
    00
  • javascript中常用编程知识

    下面我将为大家详细讲解JavaScript中常用编程知识的完整攻略。 一、变量 在JavaScript中,我们可以使用var、let和const关键字来声明变量。 1. var 使用var声明的变量具有全局或函数作用域。例如: var x = 10; function foo() { var y = 20; console.log(x); // 输出10 c…

    JavaScript 2023年5月27日
    00
  • 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法

    获取上传的图片信息并通过ajax传递给后端,可以分为以下几个步骤: 添加文件选择控件 在HTML页面中,添加一个文件选择控件,让用户可以选择要上传的图片文件。示例代码如下: <input type="file" id="file-input"> 监听文件选择事件 使用JavaScript监听文件选择控件的c…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部