本文共 1361 字,大约阅读时间需要 4 分钟。
正则表达式是一种强大的字符串匹配工具,用于描述特定字符序列。常见的字符包括特殊符号、字符范围和量词等。以下是一些常用字符及其作用:
\
:用来标记特殊字符或向后引用。^
:匹配字符串的开头位置。 Setmultiline属性开启时,^也能匹配换行或回车后的位置。$
:匹配字符串的末尾位置。 Setmultiline属性开启时,$也能匹配换行或回车前的位置。*
:匹配前面的子表达式零次或多次。例如,zo*
可匹配“z”及“zoo”。+
:匹配前面的子表达式一次或多次。例如,zo+
可匹配“zo”及“zoo”,但不匹配“z”。?
:匹配前面的子表达式零次或一次。例如,ab?
可匹配“ab”或“a”。{n}
:表示确定次数。例如,o{2}
匹配恰好两个“o”。{n,m}
:表示最少n次,最多m次。例如,o{1,3}
匹配1-3个“o”。[abc]
:匹配集合中的任意一个字符。例如,[abc]
可匹配“a”、“b”或“c”。[^abc]
:匹配不在集合中的任意字符。例如,[^abc]
可匹配”p”、”d”等。字符 | 描述 |
---|---|
\d | 匹配一个数字字符,等价于[0-9] 。 |
\D | 匹配一个非数字字符,等价于[^0-9] 。 |
\w | 匹配包括下划线的任意单词字符,等价于[A-Za-z0-9_] 。 |
\W | 匹配任一非单词字符,等价于[^A-Za-z0-9_] 。 |
\s | 匹配任意 whitespace(空格、制表符等)。 |
\S | 匹配任何非 whitespace字符。 |
事项 | 正则表达式 |
---|---|
用户名 | /^[a-z0-9_-]{3,16}$/ |
密码 | /^[a-z0-9_-]{6,18}$/ |
十六进制值 | /^#?([a-f0-9]{6}\|[a-f0-9]{3})$/ |
电子邮箱 | `/^([a-z0-9_.-]+)@([\da-z.-]+).([a-z.]{2,6})$/' |
URL | /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ |
IP 地址 | /(?!...\d{2,}/ |
HTML 标签 | /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>\|\s+\/>)$/ |
删除代码注释 | /(?<!http:\|\S)//.*$/ |
Unicode编码中的汉字范围 | /^[\u2E80-\u9FFF]+$/ |
在实际应用中,可以通过test()
方法进行字符串匹配验证。具体格式为:
/相关正则表达式/
将表达式放置于斜杠/
both sides/
中,并通过test()
方法进行验证。例如:
const regex = /^hello/g;console.log(regex.test('hello world')); // 返回trueconsole.log(regex.test('world hell'));// 返回false
要注意以下几点:1.脚 ").适用范围 2. 多个特殊字符需要使用\/
转义。3. 向后引用时需使用\\
,避免与前置转义混淆。
通过合理搭配以上字符和表达式,您可以构建出更精确的匹配规则。
转载地址:http://rmwmz.baihongyu.com/