当前位置: 首页> 健康> 母婴 > 广告流量投放_全球购物官方网站有哪些_360优化大师安卓下载_域名注册腾讯云

广告流量投放_全球购物官方网站有哪些_360优化大师安卓下载_域名注册腾讯云

时间:2025/8/4 21:59:34来源:https://blog.csdn.net/2301_82023822/article/details/146579323 浏览次数:0次
广告流量投放_全球购物官方网站有哪些_360优化大师安卓下载_域名注册腾讯云

目录

一、正则表达式基础

1. 什么是正则表达式?

2. 基本语法

二、字符匹配

1. 字符集合

2. 量词

三、分组与断言

1. 分组

2. 断言

四、修饰符(Flags)

五、在 JavaScript 中使用正则表达式

1. 创建正则表达式

2. 常用方法

3. 示例:提取数据

六、常见正则表达式用例

1. 邮箱验证

2. 手机号验证(中国大陆)

3. URL 提取

4. 密码强度(至少8位,含大小写和数字)

总结


一、正则表达式基础

1. 什么是正则表达式?

正则表达式(Regular Expression)是一种用于 匹配字符串中字符组合的模式,常用于:

  • 表单验证(邮箱、手机号、密码强度)

  • 文本搜索/替换

  • 数据提取(如日志分析)

  • 字符串格式检查

2. 基本语法

符号含义示例
/pattern/正则表达式字面量/abc/ 匹配 "abc"
^匹配字符串的开始/^start/ 匹配以 "start" 开头的字符串
$匹配字符串的结束/end$/ 匹配以 "end" 结尾的字符串
.匹配任意单个字符(除换行符)/a.c/ 匹配 "abc"、"aXc" 等
\转义特殊字符/\.com/ 匹配 ".com"

二、字符匹配

1. 字符集合

符号含义示例
[abc]匹配任意一个字符(a、b 或 c)/[aeiou]/ 匹配元音字母
[^abc]匹配不在集合中的字符/[^0-9]/ 匹配非数字字符
[a-z]匹配范围内的字符(小写字母)/[a-zA-Z]/ 匹配所有字母
\d匹配数字(等价于 [0-9]/\d+/ 匹配连续数字
\D匹配非数字(等价于 [^0-9]/\D/ 匹配非数字字符
\w匹配单词字符(字母、数字、下划线)/\w+/ 匹配单词
\W匹配非单词字符/\W/ 匹配符号(如@、#)
\s匹配空白字符(空格、制表符、换行符)/\s+/ 匹配连续空白
\S匹配非空白字符/\S/ 匹配可见字符

2. 量词

符号含义示例
*匹配前一项 0 次或多次(贪婪)/a*/ 匹配 "a"、"aaa" 或空字符串
+匹配前一项 1 次或多次(贪婪)/\d+/ 匹配连续数字(如 "123")
?匹配前一项 0 次或 1 次(贪婪)/colou?r/ 匹配 "color" 或 "colour"
{n}匹配前一项恰好 n 次/\d{4}/ 匹配 4 位数字
{n,}匹配前项至少 n 次/\d{2,}/ 匹配 2 位以上数字
{n,m}匹配前项 n 到 m 次/\d{3,5}/ 匹配 3 到 5 位数字

贪婪与非贪婪模式

  • 默认贪婪:尽可能多匹配(如 .*

  • 非贪婪:在量词后加 ?(如 .*?


三、分组与断言

1. 分组

符号含义示例
()捕获分组/(ab)+/ 匹配 "ab"、"abab"
(?:)非捕获分组(不存储匹配结果)/(?:ab)+/ 匹配但不捕获

2. 断言

符号含义示例
(?=)正向先行断言(右侧必须匹配)/a(?=b)/ 匹配后面是 "b" 的 "a"
(?!)负向先行断言(右侧不能匹配)/a(?!b)/ 匹配后面不是 "b" 的 "a"
(?<=)正向后行断言(左侧必须匹配)/(?<=a)b/ 匹配前面是 "a" 的 "b"
(?<!)负向后行断言(左侧不能匹配)/(?<!a)b/ 匹配前面不是 "a" 的 "b"

四、修饰符(Flags)

修饰符含义示例
g全局匹配(查找所有匹配项)/a/g 匹配字符串中所有 "a"
i不区分大小写/hello/i 匹配 "Hello"、"HELLO"
m多行模式(^ 和 $ 匹配每行开头结尾)/^start/m 匹配每行的 "start"
s允许 . 匹配换行符(ES2018+)/a.b/s 匹配 "a\nb"
uUnicode 模式(处理 Unicode 字符)/\u{1F600}/u 匹配 😀

五、在 JavaScript 中使用正则表达式

1. 创建正则表达式

// 方式1:字面量(推荐)
const regex1 = /pattern/flags;// 方式2:构造函数(支持动态生成)
const regex2 = new RegExp('pattern', 'flags');
// 正则表达式的基本使用
const str = 'web前端开发'
// 1. 定义规则
const reg = /web/// 2. 使用正则  test()
console.log(reg.test(str))  // true  如果符合规则匹配上则返回true
console.log(reg.test('java开发'))  // false  如果不符合规则匹配上则返回 false

2. 常用方法

方法说明示例
test()检测字符串是否匹配模式(返回布尔值)/abc/.test('abcdef') → true
exec()执行搜索,返回匹配结果数组(包含分组)/a(b)c/.exec('abc') → ['abc', 'b']
match()字符串方法,返回匹配结果数组'hello'.match(/e/) → ['e']
replace()字符串方法,替换匹配内容'abc'.replace(/a/, 'A') → 'Abc'
search()字符串方法,返回匹配位置索引'abc'.search(/b/) → 1

3. 示例:提取数据

const text = '日期:2024-07-12,时间:14:30';
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/;
const match = text.match(dateRegex);
console.log(match); // ["2024-07-12", "2024", "07", "12"]

六、常见正则表达式用例

1. 邮箱验证

const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailRegex.test('user@example.com')); // true

2. 手机号验证(中国大陆)

const phoneRegex = /^1[3-9]\d{9}$/;
console.log(phoneRegex.test('13812345678')); // true

3. URL 提取

const urlRegex = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/\S*)?$/i;
const urlParts = 'https://www.example.com/path'.match(urlRegex);
console.log(urlParts); // 分组捕获协议、域名、路径等

4. 密码强度(至少8位,含大小写和数字)

const passwordRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/;
console.log(passwordRegex.test('Pass1234')); // true

总结

正则表达式是处理字符串的利器,通过灵活组合字符匹配、量词、分组和断言,可解决复杂的文本处理需求。在 JavaScript 中,结合 test()exec()replace() 等方法,能高效实现数据验证、提取与转换功能。

关键字:广告流量投放_全球购物官方网站有哪些_360优化大师安卓下载_域名注册腾讯云

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: