javascript正则表达式RegExp入门图文教程

下面是关于“javascript正则表达式RegExp入门图文教程”的完整攻略。

一、什么是正则表达式?

正则表达式(regular expression),又称正规表示式、正规表示法、规则表示法、常规表示法(英语:Regular Expression,缩写:regex、regexp),是计算机科学的一个概念。正则表达式是一种用来匹配字符串的强有力的武器。对于很多初学者来说,正则表达式的语法十分晦涩难懂,但是一旦掌握了它,它可以让我们在文本处理等方面变得高效和灵活。

二、什么是RegExp对象?

在JavaScript中,正则表达式由RegExp对象表示。RegExp对象正如其名:它是一个描述字符串如何匹配某个模式的对象(pattern)。当使用RegExp对象表示正则表达式时,可以使用正则表达式描述字符串中的文本模式,然后使用这个模式可对一个字符串进行匹配、筛选、替换和分割。下面是RegExp对象的一些常见属性和方法。

2.1 RegExp对象的属性

RegExp对象常见的属性包括:

  • RegExp.prototype.global 是否使用全局搜索
  • RegExp.prototype.ignoreCase 忽略大小写
  • RegExp.prototype.multiline 是否使用多行模式
  • RegExp.prototype.source 正则表达式源文本字符串

2.2 RegExp对象的方法

RegExp对象常见的方法包括:

  • RegExp.prototype.exec() 用于在字符串中查找匹配的文本。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回null;
  • RegExp.prototype.test() 用于检测一个字符串是否匹配某个正则表达式。返回值为true或false;
  • String.prototype.match() 返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回null;
  • String.prototype.search() 用于查找字符串中的指定子字符串,或查找与正则表达式相匹配的子字符串。返回第一个匹配的子串的起始位置,如果未找到,则返回-1;
  • String.prototype.replace() 在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。返回用替换字符替换了匹配子串后的结果新字符串;
  • String.prototype.split() 将一个字符串分割成字符串数组。

三、正则表达式的语法

正则表达式里的特殊字符不仅包含了一些特殊的字符,还包括某些字符的组合、上下文环境、不同的Unicode字符等等。接下来,我们将一步步介绍正则表达式的基本语法。

3.1 字符类

字符类是用来表示一组字符中的一个的特殊符号。比如,[abc]表示匹配字符"a"、"b"或者"c",[^abc]表示匹配任何不在括号中的字符。

以下是字符类的一些常见语法:

语法 描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定的字符集内的任何字符。
[^adgk] 查找给定字符集外的任何字符。
(red|blue|green) 查找任何指定的选项

3.2 元字符

元字符是正则表达式的基础,它们为正则表达式提供了其强大的功能。元字符是在正则表达式里有特殊含义的非字母字符。以下是一些常见的元字符:

元字符 描述
. 查找单个字符,除了换行和行结束符。
\w 查找单个字符,包括数字、字母和下划线。
\W 查找任何非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符,包括空格、制表符、换行符等。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\n 查找换行符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。

3.3 重复字符

重复字符允许我们重复匹配在它之前出现的元素,例如,"a{1,3}"将匹配字符"a"、"aa"和"aaa"。以下是一些常见的重复字符:

语法 描述
n+ 匹配任何至少包含一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{x} 匹配包含 x 个 n 的序列的字符串。
n{x,y} 匹配包含 x 个或 y 个 n 的序列的字符串。
n{x,} 匹配包含至少 x 个 n 的序列的字符串。
n{0,} 等同于 n*。
n{1,} 等同于 n+。

四、RegExp对象的使用

我们以一个简单的例子来说明如何使用RegExp对象:

var str = "Hello world! This is a test string for regexp.";
var patt = /world/i; // i表示不区分大小写
var result = patt.test(str); // 匹配则返回true,否则返回false
console.log(result);

输出结果为:true。

下面再举一个稍微复杂一点的例子。假设有一个表单,用户需要输入邮箱地址和手机号码。当用户输入完邮箱和手机号码后,我们需要判断这两个输入框中的内容是否符合规定,如果不符合规定,就提示用户修改输入。

// 获取表单中的输入框元素
var emailInput = document.getElementById("email");
var phoneInput = document.getElementById("phone");

// 为输入框添加blur事件监听器
emailInput.addEventListener("blur", function() {
  var email = emailInput.value;
  var patt = /^\w+@[a-zA-Z0-9]+\.[a-zA-Z]{2,}$/; // 匹配邮箱地址的正则表达式
  if (!patt.test(email)) { // 如果不匹配
    alert("请输入正确格式的邮箱地址!");
    emailInput.value = ""; // 清空输入框
  }
});

phoneInput.addEventListener("blur", function() {
  var phone = phoneInput.value;
  var patt = /^1[3-9]\d{9}$/; // 匹配手机号码的正则表达式
  if (!patt.test(phone)) { // 如果不匹配
    alert("请输入正确格式的手机号码!");
    phoneInput.value = ""; // 清空输入框
  }
});

在以上代码中,我们通过RegExp对象来创建了两个正则表达式,一个用于匹配邮箱地址,一个用于匹配手机号码。当用户输入完邮箱和手机号码后,我们使用test()方法来判断输入是否符合规定,如果不符合,则弹出提示框并清空输入框。

至此,我们介绍了RegExp对象和正则表达式的一些基本知识,并用代码示例演示了如何使用RegExp对象来匹配字符串。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript正则表达式RegExp入门图文教程 - Python技术站

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

相关文章

  • 详解前端安全之JavaScript防http劫持与XSS

    首先,需要明确的是前端安全是一个非常重要的主题。在网络环境日趋复杂的今天,安全问题已经不再是一个简单的概念,而是涉及到许多方面,包括网络攻击、数据泄露、信息窃取等。因此,在开发网站时,需要重视前端安全,采取相应的措施,以保障网站和用户的安全。 其中一项非常重要的前端安全技术就是防止http劫持和XSS攻击。http劫持指的是黑客通过某些手段,劫持用户的请求,…

    JavaScript 2023年6月10日
    00
  • javascript函数自动执行常用方法汇总

    本文将详细讲解JavaScript函数自动执行的几种常用方法。 1. 什么是函数自动执行? 函数自动执行指的是在页面加载时或者在某个特定的事件触发时,函数自动被执行。这种自动执行的函数我们称之为“自执行函数”。 自执行函数的定义形式有两种: // 匿名函数方式 (function(){ // code here })(); // 具名函数方式 (functi…

    JavaScript 2023年5月27日
    00
  • JavaScript之String常见的方法详解

    JavaScript之String常见的方法详解 概述 在JavaScript中,字符串是一个非常重要的数据类型。我们经常需要对字符串进行各种操作以满足业务需求。这篇文章将介绍JavaScript中字符串常见的方法,包括获取字符串长度、字符串连接、字符串截取、查找字符串位置等。 获取字符串长度 获取字符串的长度,可以通过字符串的length属性获取,它会返回…

    JavaScript 2023年5月27日
    00
  • 一个写得较好的JavaScript日期挑选控件

    当我们需要在网站中使用日期选择控件时,一个好的JavaScript日期挑选控件可以极大地帮助我们提高开发效率和用户体验。在使用JavaScript日期控件之前,我们需要考虑以下几个因素: 控件的易用性 控件的可定制性 控件的兼容性 在选择JavaScript日期控制器之前,需要仔细考虑以上因素,以确定控件的选择是否适合我们的需求。 以下是一个基于jQuery…

    JavaScript 2023年6月10日
    00
  • JS验证逗号隔开可以是中文字母数字

    JS验证逗号隔开可以是中文字母数字,一般用于输入框中输入多个值,用逗号隔开这种需求。下面是一个使用 JavaScript 进行验证的完整攻略: 1. 正则表达式验证 为验证输入的内容是否符合要求,可以使用正则表达式进行验证。下面的正则表达式可以验证输入的内容是否为逗号隔开的中文字母数字组合: /^[a-zA-Z0-9\u4e00-\u9fa5]+(,[a-z…

    JavaScript 2023年6月10日
    00
  • 一个JavaScript用逗号分割字符串实例

    下面是一个JavaScript用逗号分割字符串实例的完整攻略。 问题 我们需要将一个字符串根据逗号进行分割,以便我们可以处理该字符串的各个部分。 解决方案 使用JavaScript的 split() 函数,该函数可以根据指定的分隔符将一个字符串分割为多个子字符串,并将这些子字符串存储在一个数组中。 语法如下: string.split(separator, …

    JavaScript 2023年5月28日
    00
  • JavaScript中定义函数的三种方法

    在JavaScript中,定义函数有三种方法,分别是函数声明、函数表达式和箭头函数。 函数声明 函数声明是最常见的定义函数的方法,格式如下: function functionName(parameters) { // 函数体 } 其中,functionName为函数的名称,parameters为函数所需的参数,函数体中包含执行的代码。例如: functio…

    JavaScript 2023年5月27日
    00
  • javascript创建cookie、读取cookie

    创建Cookie: JavaScript 创建 Cookie 很容易。下面是创建 Cookie 的语法: document.cookie = "key=value; expires=date; path=pathName"; 说明: key=value:键值对,表示要保存的数据。 expires=date:可选。设置 Cookie 的过期…

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