正则表达式在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 window对象详解

    Javascript window对象详解 window对象是JavaScript中的全局对象,它代表浏览器窗口或标签页。在网页中,我们经常使用window对象来操作浏览器窗口、加载新的文档等。 获取窗口的大小和位置 要获取窗口的大小和位置,我们可以使用window.innerWidth、window.innerHeight、window.outerWidt…

    JavaScript 2023年5月27日
    00
  • JavaScript 动态三角函数实例详解

    JavaScript 动态三角函数实例详解 引言 本文将详细讲解如何使用JavaScript实现动态三角函数。三角函数是数学中的重要概念,而动态三角函数则是将三角函数与图形可视化相结合的效果,将这种效果实现在Web应用程序中,离不开JavaScript的帮助。 必要的准备工作 在本例中,我们将使用HTML、CSS和JavaScript来实现三角函数。打开你的…

    JavaScript 2023年5月27日
    00
  • 教你用typescript类型来推算斐波那契

    下面是教你用 TypeScript 类型来推算斐波那契的完整攻略。 一、斐波那契数列的定义 斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21、34、……我们定义 f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2,n∈N*)。 二、使用 TypeScript 声明斐波那契数列类型 我们可以使用 TypeScr…

    JavaScript 2023年5月28日
    00
  • javascript截取字符串(通过substring实现并支持中英文混合)

    下面是完整的攻略: Javascript截取字符串(通过substring实现并支持中英文混合) 在 Javascript 中,可以通过 substring 方法来截取字符串。该方法可以接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的终止位置(不包含该位置的字符)。具体的语法如下: string.substring(start, end) 下面是…

    JavaScript 2023年5月28日
    00
  • js获取字符串字节数方法小结

    以下是关于“js获取字符串字节数方法小结”的完整攻略。 什么是字符串字节数? 在计算机中,一个字节(byte)是计量单位,表示一个8位元组。而在字符串中,每个字符都对应1个或多个字节。因此,字符串字节数(英文:byte length)是衡量一个字符串占据的存储空间大小的指标。在某些场合下,需要对字符串字节数进行操作,例如验证用户输入的字符长度是否正确。 如何…

    JavaScript 2023年5月19日
    00
  • 浅谈JS日期(Date)处理函数

    浅谈JS日期(Date)处理函数 在JavaScript中,日期(Date)处理是相当重要的一种数据类型。在我们的代码开发工作中,通常需要使用日期处理函数对日期进行操作。接下来我们将详细介绍JavaScript中日期处理函数的使用方法。 日期的基本操作 在JavaScript中,日期的基本操作包括创建日期对象、获取日期时间信息以及日期的格式化输出等。 创建日…

    JavaScript 2023年5月27日
    00
  • javascript 函数调用的对象和方法

    JavaScript 函数调用的对象和方法是 JavaScript 中一个非常重要的概念,理解这个概念对于编写高质量的 JavaScript 代码非常有帮助。下面,我将为您详细讲解 JavaScript 函数调用的对象和方法。 函数调用的对象 JavaScript 函数可以作为另一个对象的属性值使用,这时候函数称为该对象的一个方法。在调用该方法时,方法内的关…

    JavaScript 2023年5月27日
    00
  • JS实用案例之输入智能提示(打字机输出效果)

    下面是对“JS实用案例之输入智能提示(打字机输出效果)”进行详细讲解的完整攻略。 1. 概述 “JS实用案例之输入智能提示(打字机输出效果)”是一个JS实用案例,它通过在用户输入时展示智能提示等方法,提高了网站的用户交互体验。本文将介绍该案例的详细实现方法。 2. 技术要点 JavaScript HTML CSS 3. 实现过程 3.1. 编写HTML和CS…

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