正则表达式在js前端的15个使用场景梳理总结

这篇攻略将介绍正则表达式在JavaScript前端开发中的15个常见使用场景,帮助读者了解如何在实践中灵活运用正则表达式,提高开发效率。

1.验证邮箱地址

在开发过程中,我们需要验证用户输入的邮箱地址是否合法。以下是验证邮箱地址的正则表达式:

/^([a-zA-Z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

示例代码:

function isValidEmail(email) {
  const emailPattern = /^([a-zA-Z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
  return emailPattern.test(email);
}

console.log(isValidEmail("test@gmail.com")); // 输出 true
console.log(isValidEmail("invalid_email")); // 输出 false

2.验证手机号码

验证用户输入的电话号码是否为有效的手机号码也是一个非常常见的场景。以下是验证手机号码的正则表达式:

/^(13[0-9]|14[5-9]|15[0-3,5-9]|16[5-6]|17[0-8]|18[0-9]|19[1,8,9])\d{8}$/

示例代码:

function isValidPhoneNumber(phoneNumber) {
  const phonePattern = /^(13[0-9]|14[5-9]|15[0-3,5-9]|16[5-6]|17[0-8]|18[0-9]|19[1,8,9])\d{8}$/;
  return phonePattern.test(phoneNumber);
}

console.log(isValidPhoneNumber("13800138000")); // 输出 true
console.log(isValidPhoneNumber("invalid_phone_number")); // 输出 false

3.验证密码强度

在用户注册时,我们通常会要求用户输入强密码。以下是一个验证密码强度的正则表达式,该正则表达式要求密码长度至少为8位,必须包含字母、数字和特殊字符:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-_=+\\\|\[\]{};:'",<.>\/?]).{8,}$/

示例代码:

function isStrongPassword(password) {
  const passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-_=+\\\|\[\]{};:'",<.>\/?]).{8,}$/;
  return passwordPattern.test(password);
}

console.log(isStrongPassword("StrongPassword123!")); // 输出 true
console.log(isStrongPassword("weakpassword")); // 输出 false

4.提取URL中的参数

我们可以使用正则表达式轻松地从URL中提取参数。以下是一个从URL中提取参数的简单示例:

function getQueryParam(url, name) {
  const queryPattern = new RegExp(`[?&]${name}=([^&]+)`);
  const match = url.match(queryPattern);
  return match ? match[1] : null;
}

console.log(getQueryParam("https://www.example.com/?q=javascript", "q")); // 输出 "javascript"

5.移除HTML标签

如果我们需要从HTML文本中提取纯文本内容,可以使用正则表达式来移除HTML标签。以下是一个简单的示例:

function stripTags(html) {
  const tagPattern = /<[^>]+>/g;
  return html.replace(tagPattern, "");
}

console.log(stripTags("<p>This is <b>bold</b> text.</p>")); // 输出 "This is bold text."

6.检测字符串中是否包含子字符串

我们可以使用正则表达式来检测一个字符串中是否包含某个子字符串。以下是一个检测字符串中是否包含某个子字符串的示例:

function containsSubstring(str, subStr) {
  const subStrPattern = new RegExp(subStr);
  return subStrPattern.test(str);
}

console.log(containsSubstring("hello world", "world")); // 输出 true
console.log(containsSubstring("hello world", "mars")); // 输出 false

7.检测字符串是否以特定字符串开头或结尾

我们可以使用正则表达式来检测一个字符串是否以特定字符串开头或结尾。以下是一个检测字符串是否以特定字符串开头或结尾的示例:

function startsWith(str, prefix) {
  const prefixPattern = new RegExp(`^${prefix}`);
  return prefixPattern.test(str);
}

function endsWith(str, suffix) {
  const suffixPattern = new RegExp(`${suffix}$`);
  return suffixPattern.test(str);
}

console.log(startsWith("hello world", "hello")); // 输出 true
console.log(endsWith("hello world", "world")); // 输出 true

8.匹配IP地址

我们可以使用正则表达式来匹配IP地址。以下是一个匹配IP地址的示例:

function isValidIPAddress(ipAddress) {
  const ipPattern = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/;
  return ipPattern.test(ipAddress);
}

console.log(isValidIPAddress("192.168.0.1")); // 输出 true
console.log(isValidIPAddress("invalid_ip_address")); // 输出 false

9.匹配HTML颜色值

我们可以使用正则表达式来匹配HTML颜色值。以下是一个匹配HTML颜色值的示例:

function isValidColorValue(colorValue) {
  const colorPattern = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
  return colorPattern.test(colorValue);
}

console.log(isValidColorValue("#fff")); // 输出 true
console.log(isValidColorValue("#123abc")); // 输出 true
console.log(isValidColorValue("invalid_color")); // 输出 false

10.匹配邮政编码

我们可以使用正则表达式来匹配邮政编码。以下是一个匹配邮政编码的示例:

function isValidZipCode(zipCode) {
  const zipCodePattern = /^\d{5}(?:[-\s]\d{4})?$/;
  return zipCodePattern.test(zipCode);
}

console.log(isValidZipCode("12345")); // 输出 true
console.log(isValidZipCode("12345-6789")); // 输出 true
console.log(isValidZipCode("invalid_zip_code")); // 输出 false

11.匹配日期

我们可以使用正则表达式来匹配日期。以下是一个匹配日期的示例:

function isValidDate(dateString) {
  const datePattern = /^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.) (?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1 6|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468] [048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/;
  return datePattern.test(dateString);
}

console.log(isValidDate("01/01/2022")); // 输出 true
console.log(isValidDate("2022-01-01")); // 输出 true
console.log(isValidDate("invalid_date")); // 输出 false

12.替换字符串中的内容

我们可以使用正则表达式来替换字符串中的内容。以下是一个替换字符串中的内容的示例:

function replaceString(str, pattern, replacement) {
  const regex = new RegExp(pattern, "g");
  return str.replace(regex, replacement);
}

console.log(replaceString("hello world", "world", "mars")); // 输出 "hello mars"

13.提取字符串中的数字

我们可以使用正则表达式轻松地从字符串中提取数字。以下是一个提取字符串中的数字的示例:

function getNumbersFromString(str) {
  const numberPattern = /\d+/g;
  return str.match(numberPattern);
}

console.log(getNumbersFromString("JavaScript123")); // 输出 ["123"]

14.提取字符串中的所有单词

我们可以使用正则表达式轻松地从字符串中提取所有单词。以下是一个提取字符串中的所有单词的示例:

function getWordsFromString(str) {
  const wordPattern = /\w+/g;
  return str.match(wordPattern);
}

console.log(getWordsFromString("Hello, world!")); // 输出 ["Hello", "world"]

15.计算字符串中出现的单词数

我们可以使用正则表达式轻松地计算字符串中出现的单词数。以下是一个计算字符串中出现的单词数的示例:

function countWords(str) {
  const wordPattern = /\b\w+\b/g;
  return (str.match(wordPattern) || []).length;
}

console.log(countWords("Hello, world!")); // 输出 2

以上是15个经典的JavaScript前端正则表达式使用场景的总结。在实践中灵活应用这些技巧,能够为你的日常开发工作带来很大的便利。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:正则表达式在js前端的15个使用场景梳理总结 - Python技术站

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

相关文章

  • Javascript定义类(class)的三种方法详解

    Javascript定义类(class)的三种方法详解 1. ES6 Class 首先,“ES6 Class”是一种相对简单的定义类的方法,它采用了一种“类”的概念,并以“class”关键字来定义类。这种方法最常用,也是最简单的定义类的方式。 class Person { constructor(name, age) { this.name = name; …

    JavaScript 2023年5月27日
    00
  • javascript this详细介绍

    JavaScript this详细介绍 在 JavaScript 中,this 关键字是其中的一个重要概念,它代表当前函数执行上下文中的主体,即当前正在执行的对象。理解 this 的正确使用方法对于编写高质量的 JavaScript 代码来说非常关键。 显式绑定 this 在 JavaScript 中,可以通过调用 call 或 apply 方法显式地指定函…

    JavaScript 2023年5月18日
    00
  • JavaScript字符串处理(String对象)详解

    JavaScript字符串处理(String对象)详解 在JavaScript中,字符串也是一个重要的数据类型。String对象中提供了一系列的方法来对字符串进行处理。本篇攻略将详细讲解JavaScript中String对象的常用方法。 字符串的定义 在JavaScript中,字符串可以用单引号或双引号来定义。例如: var str1 = ‘hello wo…

    JavaScript 2023年5月19日
    00
  • 详解javascript的变量与标识符

    我们来详细讲解JavaScript的变量与标识符。 变量 在JavaScript中,变量是用于存储数据的容器,它们可以被任何地方引用或更改。在使用变量之前,需要先声明它们,以告诉JavaScript编译器它们的类型。 声明变量有三种方式: 使用var关键字 var name = ‘张三’; 使用let关键字(ES6新增) let age = 20; 使用co…

    JavaScript 2023年5月18日
    00
  • javascript整除实现代码

    Javascript整除实现代码攻略 在Javascript中,没有提供类似于Java或C++等语言中的整除运算符,因此我们需要在代码中自己实现这一功能。下面详细介绍Javascript整除实现的几种方法。 方法一:使用Bitwise操作符 可以使用Bitwise操作符来实现整除,具体思路是先进行整数运算,然后通过Bitwise运算符强制取整,从而达到整除的…

    JavaScript 2023年5月18日
    00
  • JS高级笔记

    关于“JS高级笔记”的完整攻略,以下是一些需要注意的重点: 1. 确定学习JS高级笔记的前置知识 在学习JS高级笔记之前,需要掌握JavaScript的基础语法、DOM操作、事件处理、AJAX等相关基础知识。只有理解这些基础知识,才能更好地理解JS高级笔记中的概念和实现方式。 2. 学习JavaScript的面向对象编程 JS高级笔记的很多内容都是基于Jav…

    JavaScript 2023年5月18日
    00
  • 小程序异步问题之多个网络请求依次执行并依次收集请求结果

    当小程序中需要同时发起多个网络请求,并且这些网络请求需要按顺序执行,每个请求执行完成后需要依次收集请求结果时,就需要解决小程序的异步问题。 下面是实现多个网络请求依次执行并依次收集请求结果的完整攻略: 方法一:Promise + async/await 使用Promise.all方法,将需要按顺序执行的请求封装成Promise对象,传入Promise.all…

    JavaScript 2023年6月11日
    00
  • HTML5安全风险之Web Worker攻击详解

    HTML5安全风险之Web Worker攻击详解 什么是Web Worker? Web Worker是HTML5新增的一个功能,可以在后台线程中执行JavaScript脚本,而不会阻塞UI线程。Web Worker的主要应用场景是处理一些耗时的计算任务,如数据处理、图像处理等。 Web Worker的基本用法 在主线程中创建Web Worker对象: var…

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