一起学习javascript-正则表达式

<script>

// 正则表达式

// 下面是一些核心的正则表达式语法元素:

// 1字符匹配:

// . (点): 匹配除了换行符之外的任意单个字符。

// \d: 匹配任何数字(等同于 [0-9])。

// \D: 匹配任何非数字字符。

// \w: 匹配任何字母数字字符,包括下划线(等同于 [A-Za-z0-9_])。

// \W: 匹配任何非字母数字字符。

// \s: 匹配任何空白字符(如空格、制表符、换页符)。

// \S: 匹配任何非空白字符

//2量词:

// *: 匹配前面的元素零次或多次。

// +: 匹配前面的元素一次或多次。

// ?: 匹配前面的元素零次或一次。

// {n}: 匹配前面的元素恰好n次。

// {n,}: 匹配前面的元素至少n次。

// {n,m}: 匹配前面的元素至少n次,但不超过m次

// 3定位符:

// ^: 匹配字符串的开始位置。

// $: 匹配字符串的结束位置。

// \b: 匹配单词边界。

// \B: 匹配非单词边界。

// 4字符集:

// [abc]: 匹配字符集中的任意一个字符。

// [^abc]: 匹配不在字符集中的任意一个字符。

// [a-z], [A-Z], [0-9]: 匹配指定范围内的字符。

// 5转义字符:

// \: 用于转义特殊字符,使其作为普通字符处理,如 \. 匹配点字符。

// 6预定义字符类:

// 除了上述提到的 \d, \w, \s 等,正则表达式还可能支持其他预定义类,具体取决于所使用的编程语言或工具。

// 正则表达式在JavaScript中应用非常广泛,以下是一些常见的应用场景:

// 1.表单验证:

// 在网页表单中验证用户输入的数据格式,

// 如邮箱地址(^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$),电话号码、密码强度等。

// 我们来翻译一下这个正则表达式()

// 第一组^\w+ : ^(开始符号),\w((小写的w)匹配以字母、数字、下划线开头的字符串)+(匹配前面的元素一次或多次)

// 第一组连起来读 匹配以字母、数字、下划线开头的字符串一次或多次

// 第二组([\.-]?\w+)*:匹配[\.-]?中的.或-零次或1次,\w+,匹配以字母、数字、下划线开头的字符串一次或多次,*: 匹配前面的元素零次或多次。

// 第二组连起来为:匹配一个或多个单词字符构成的字符串零次或多次,这个字符串前面可能有一个可选的点或破折号。

// 第三组@\w+ :@:直接匹配字符 @ 本身,无特殊意义,就是查找该字符。\w+匹配以字母、数字、下划线开头的字符串一次或多次

// 第四组([\.-]?\w+)*:匹配[\.-]?中的.或-零次或1次,\w+,匹配以字母、数字、下划线开头的字符串一次或多次,*: 匹配前面的元素零次或多次。

// 第四组连起来为:匹配一个或多个单词字符构成的字符串零次或多次,这个字符串前面可能有一个可选的点或破折号。

// 第五组(\.\w{2,3}):匹配\.,\w{2,3}匹配以字母、数字、下划线开头的字符串一次或多次,{2,3}匹配前面的元素至少2次,不超过3次。

// 第五组连起来为:匹配一个或多个单词字符构成的字符串至少2次,不超过3次,这个字符串前面必须有一个点。

// 第六组+: +表示前面的元素至少一次。 表示字符串的结束位置。

// 2文本搜索与替换:

// 在大量文本数据中查找特定模式的字符串,如日志分析中寻找错误信息,或在文档编辑器中批量替换特定词汇。

// 3数据提取:

// 从HTML、XML等标记语言中提取链接、图片URL、标签内容等特定信息。

// 分析日志文件,提取时间戳、IP地址等有用信息。

// 4字符串格式化:

// 根据规则清理或格式化文本数据,如统一邮箱地址的大小写,或去除多余的空白字符。

// 5URL解析:

// 分析URL路径,提取域名、协议、查询参数等部分。

// 安全过滤:

</script> -->

<!-- // 现在我们来写一个正则表达式

// 以QQ邮箱为示例:1111111111@qq.com,验证输入的这个QQ邮箱是否正确

var reg=/^[0-9]+@(qq)\.com$/;

-->

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>验证输入的这个QQ邮箱是否正确</title>

</head>

<body>

<form id="emailForm">

<label for="email">Email:</label>

<input type="text" id="email" name="email">

<button type="button" onclick="validateEmail()">Submit</button>

<p id="message"></p>

</form>

</body>

</html>

<script>

function validateEmail() {

const emailInput = document.getElementById('email');

const message = document.getElementById('message');

const email = emailInput.value.trim();

// .trim():这是一个字符串方法,用于移除字符串两端的空白字符(包括空格、制表符等)。通过调用.trim(),可以确保从emailInput

// 获取的值在进行后续处理前,其首尾不会有多余的空白字符,这对于邮箱地址的格式验证非常重要,因为多余的空白可能导致验证失败。

const emailPattern = /^[0-9]+@(qq)\.com$/;

if (emailPattern.test(email)) {

message.style.color = 'green';

message.textContent = '邮箱格式正确!';

} else {

message.style.color = 'red';

message.textContent = '邮箱格式不正确,请输入有效的QQ邮箱地址。';

}

// test()函数是JavaScript中正则表达式对象的方法。它的作用是检查一个字符串是否符合某个正则表达式的规则,返回一个布尔值:

// 如果字符串符合正则表达式的规则,test()方法返回true。

// 如果不符合,则返回false。

}

</script>

输入1111111111@qq.com

输入其他

相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛4 天前
计算机系统概论——校验码
学习
babe小鑫4 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms4 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下4 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。4 天前
2026.2.25监控学习
学习
im_AMBER4 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J4 天前
从“Hello World“ 开始 C++
c语言·c++·学习