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

yizhihongxing

这篇攻略将介绍正则表达式在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用20行代码实现虎年春节倒计时

    非常感谢您对JavaScript倒计时的学习兴趣,下面我将为您详细讲解如何用20行代码实现虎年春节倒计时。 1. 前置知识 在学习实现虎年春节倒计时之前,您需要了解以下知识点: HTML基础,掌握基本的HTML标记 CSS基础,掌握样式基本属性 JavaScript基础,掌握JavaScript基本语法和DOM操作 2. 实现思路 实现虎年春节倒计时的思路主…

    JavaScript 2023年6月11日
    00
  • 探讨:JavaScript ECAMScript5 新特性之get/set访问器

    探讨:JavaScript ECMA Script 5 新特性之 get/set 访问器 简介 ECMA-262 第五版(ECMA Script 5)是 JavaScript 编程语言的最新发布的标准,它包含了一些新的语法以及 ECMAScript 3 上的扩展。 其中一个新增的重要特性是 get 和 set 访问器,这两个方法提供了一种对象属性的访问方式,…

    JavaScript 2023年6月10日
    00
  • JS生成随机字符串的多种方法

    JS生成随机字符串的多种方法 在JS中,生成随机字符串是常见的需求。我们可以使用多种方法来实现这个需求,下面介绍几种常见的方法。 使用Math.random()方法生成随机字符串 Math.random()方法返回一个0到1之间的随机数。我们可以使用这个方法将结果转换成字符串,然后截取字符串来生成随机字符串。 其中,Math.random()方法返回的是一个…

    JavaScript 2023年5月28日
    00
  • gridview 行选添加颜色和事件

    下面是详细讲解“gridview 行选添加颜色和事件”的攻略: 1. 前置条件 在使用 GridView 行选添加颜色和事件之前确认以下条件: GridView 控件应该已经被正确地绑定到数据源。 GridView 控件应该已经在页面中被正确地声明,并且属性设置正确。 2. 行选添加颜色 要为 GridView 控件的行添加颜色,可以通过以下方式实现: 2.…

    JavaScript 2023年6月10日
    00
  • 详细聊聊闭包在js中充当着什么角色

    闭包是Javascript中一个非常重要的概念,它常常被用来解决一些特殊的问题。在深入探讨闭包在Javascript中扮演的角色之前,先来了解一下什么是闭包。 什么是闭包 在Javascript中,函数内部可以访问到函数外部的变量,而闭包就是指函数内部持有对函数外部变量的引用。 在Javascript中,每个函数都会创建一个作用域。当一个函数内部引用了外部的…

    JavaScript 2023年6月10日
    00
  • js 日期加红代码 适用于各种cms 原创

    进入正题。 JS 日期加红代码 适用于各种CMS 原创攻略 在网页开发中,有时需要将某些日期信息突出显示,以便读者更加方便地理解。这时候可以用 js 代码来实现日期加红这个效果。 实现方法 具体的实现方法是通过 JavaScript 获取网页上的日期信息,然后判断日期是否以当前日期为基准进行标红处理。 下面是关键的 JavaScript 代码: <sc…

    JavaScript 2023年6月11日
    00
  • 利用JavaScript实现防抖节流函数的示例代码

    下面是关于利用JavaScript实现防抖和节流函数的完整攻略。 什么是防抖和节流? 在讲解防抖和节流函数具体实现之前,先简单介绍一下它们的概念。 防抖 防抖是指在事件被触发n秒后再执行回调函数,如果在这n秒内又被触发,则重新计时。通俗地讲,就是在用户不断操作的情况下,只有在用户最后一次操作完毕后一定时间内才会触发事件。 节流 节流是指在一定时间间隔内只执行…

    JavaScript 2023年6月11日
    00
  • JS模拟面向对象全解(一、类型及传递)

    JS模拟面向对象全解(一、类型及传递)是一篇介绍JavaScript中模拟实现面向对象编程的文章。文章主要分为四个部分:类型、传递、多态和继承。在这里,我将详细讲解第一部分的完整攻略。 标题 首先,文章需要有一个清晰的标题,以便读者快速了解文章的主题。例如,根据本篇文章,“JS模拟面向对象全解(一、类型及传递)”就是一个恰当的标题。 类型 在JavaScri…

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