一个非常不错的一个正则练习JS版

下面提供详细的攻略:

什么是正则表达式

正则表达式是一种字符串匹配模式,用于检索、替换和提取字符串中的文本。它可以用特定的语法编写,可以匹配字符串的某些模式,具有处理字符串高级功能的能力。

正则表达式语法

正则表达式语法包括元字符、修饰符和括号。

元字符

元字符是一些特殊字符,它们在正则表达式中具有特殊含义。这些字符可以用来匹配或定位特定的内容或位置,如下表所示:

元字符 描述
. 匹配任意字符,除了换行符
* 匹配前面的字符 0 次或多次
+ 匹配前面的字符 1 次或多次
? 匹配前面的字符 0 次或 1 次
{n} 匹配前面的字符 n 次
{n,m} 匹配前面的字符 n 到 m 次
[] 匹配括号内的任意一个字符
[^] 不匹配括号内的任意一个字符
^ 匹配输入字符串的开头
$ 匹配输入字符串的结尾
() 分组匹配,可以进行子表达式嵌套

修饰符

修饰符是可选的字符,用于更精细地调整正则表达式的匹配规则。

修饰符 描述
i 执行不区分大小写的匹配
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m 多行模式(^ 和 $ 可以匹配每一行的开头和结尾)
s 执行点号匹配任何字符(包括换行符)
u 使用 Unicode 对模式进行匹配
y 执行从上次匹配位置开始的粘性搜索

示例

以下是两个例子,鼓励读者自己理解。

验证 Email 地址

function validateEmail(email) {
  let pattern = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i;
  return pattern.test(email);
}

上面的函数使用正则表达式验证邮件地址。它只允许小写字母、数字、下划线、点、加号、百分号和短划线作为用户名的一部分,允许域名中有一个或多个点。

验证 URL 地址

function validateUrl(url) {
  let pattern = /^(http|https):\/\/[a-z0-9-]+(\.[a-z0-9-]+)+([\/?#].*)?$/i;
  return pattern.test(url);
}

上面的函数使用正则表达式验证 URL 地址。它使用 ^(开始)和 $(结束)定位器来限制字符串内容,使用 + 和 * 元字符来表示一个或多个字符和零个或多个字符,使用 [] 表示可能出现的字符,使用 ()(groups) 分组,使用 + 表示可能出现一次或多次的分组。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个非常不错的一个正则练习JS版 - Python技术站

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

相关文章

  • Javascript RegExp multiline 属性

    JavaScript RegExp的multiline属性 JavaScript的RegExp对象中的multiline属性是一个布尔值,表示正则表达式是否具有多行标志m。当multiline属性为true,正则表达式将匹配多行文本。 语法 multiline属性的语法如下: RegExp.multiline 示例1:使用multiline属性匹配多行文本 …

    JavaScript 2023年5月11日
    00
  • safari cookie设置中文失败的解决方法

    当我们在Safari浏览器中设置中文的cookie时,可能会出现设置失败的情况。下面是解决方法的完整攻略,包含以下步骤: 1. 清除浏览器缓存 首先,在Safari浏览器中选择“偏好设置”,然后选择“隐私”面板。在这里,可以看到“移除所有网站数据”的选项。点击这个按钮,清除浏览器缓存。 2. 检查Safaricookie设置和时间误差 如果以上步骤没有解决问…

    JavaScript 2023年6月11日
    00
  • 原生JS实现的跳一跳小游戏完整实例

    作为网站的作者,我很乐意为大家提供原生JS实现的跳一跳小游戏的完整攻略。 简介 跳一跳是一款非常流行的手机游戏,它的玩法简单而又有趣。本攻略将介绍如何用原生JS实现一个跳一跳的小游戏,包括如何实现小人跳跃、生成随机方块、游戏分数计算等。 实现步骤 1. 初始化游戏画布 首先,我们需要在HTML页面中创建一个画布(canvas),并通过JS获取它的上下文(co…

    JavaScript 2023年5月28日
    00
  • JavaScript 微任务和宏任务讲解

    JavaScript 微任务和宏任务讲解 在 JavaScript 中,异步任务主要分为微任务和宏任务两种。宏任务可以理解为宏大的任务,就是需要花费比较长时间才能完成的任务,比如定时器、ajax 请求、DOM 事件等。微任务可以理解为小任务,比较轻量,基本上可以在当前任务完成后马上被执行,比如 Promise。 在执行异步任务时,引擎会将宏任务放入宏任务队列…

    JavaScript 2023年5月28日
    00
  • JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性

    ECMAScript 5 (也称为ES5) 是 JavaScript 的第五个版本,具有多项新特性,为Web应用程序开发增加了更多的功能和灵活性。下面是ECMAScript5的一些主要特性: 1. 严格模式 ECMAScript 5 引入了严格模式,它是一种在代码单元或整个脚本中启用更严格解析和错误处理的方式。严格模式不允许给未声明的变量赋值,不允许删除变量…

    JavaScript 2023年5月18日
    00
  • JavaScript中的普通函数和箭头函数的区别和用法详解

    介绍JavaScript中的普通函数和箭头函数的区别和用法,可以从以下几个方面进行详细的讲解: 普通函数和箭头函数的区别 语法结构 普通函数: function add(a, b) { return a + b; } 箭头函数: const add = (a, b) => { return a + b; } this指向 普通函数的this指向调用它的…

    JavaScript 2023年5月27日
    00
  • JavaScript流程控制(分支)

    好的!首先,让我们先确定一下“JavaScript流程控制(分支)”的范畴。在JavaScript中,流程控制主要有三种,分别是分支结构、循环结构和跳转结构。而“JavaScript流程控制(分支)”指的是通过条件判断,执行不同代码路径的流程控制方式。 在JavaScript中,常用的条件判断有if…else和switch两种。下面我们将介绍这两种方法的…

    JavaScript 2023年5月27日
    00
  • 如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙

    如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙 一、背景 在前端开发中,我们经常会遇到多个JS文件需要按照特定的顺序加载执行,否则会出现各种奇怪的问题。其中,使用jQuery.html方法加载外部JS文件,不同的浏览器会有不同的表现,这给我们的开发带来了一定的困扰。本文将针对这个问题,通过归纳总结,给出可靠的解决方案。 二、问题…

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