JavaScript 中的 RegEx 以及一个很酷的项目🔥
大家好,这是我在这个平台上的第一篇博客,我们将在一个很酷的小项目的帮助下学习正则表达式。
大纲
- 什么是 RegEx?
- RegEx 的用例。
- 在 JavaScript 中定义 RegEx 的不同方法。
- RegEx 备忘单
- RegEx 中的一些有用的标志。
- 元字符
- 量词
- 项目
什么是 RegEx?
RegEx 是正则表达式 (Regular Expressions) 的缩写。RegEx 是由特殊字符组成的字符串,用作匹配字符串的模式。
RegEx 的用例。
- 用于验证(电子邮件验证、电话验证等)。
- 匹配和替换程序。
- 密码模式匹配等
在 JavaScript 中定义 RegEx 的方法。
在 JavaScript 中定义 RegEx基本上有两种方法。
- 使用文字
- 使用 RegEx 对象
让我们看看如何使用这两种方式定义 RegEx。
- 使用文字
let regPat = /ab/
- 使用 RegEx 对象
let regPat = new RegExp('abc');
对于 RegEx 对象部分,您无需导入/require任何内容即可使用它。因为它是一个全局对象,可以在代码文件的任何位置使用。
对于这篇博客,我将使用字面方式
RegEx 备忘单
一些有用的标志。
- i --> 用于忽略大小写。
- g --> 用于执行全局搜索。
- s --> 用于匹配换行符。
- m --> 用于执行多行搜索。
您可以在 RegEx 模式中使用多个标志,但务必将标志写在末尾。
例如
/gold/i.test('GolD')
这将输出为true,因为最后的 i 标志将忽略区分大小写。
元字符
元字符用于匹配后续字符,可以是特殊字符,也可以是字面量。
部分元字符如下所示。
- \d --> 匹配 [0-9] 中的下一个字符
- \D --> 匹配后面的任何字符(数字除外)。
- \s --> 将下一个字符匹配为空格/空格。
- \w --> 匹配字母(大写和小写)。
- \W --> 匹配除字母之外的任何内容。
量词。
量词用于表示您想要匹配多少个字符或表达式。
例如:如果你想匹配 10 位数字,你可以这样做
let regPat = /\d{10}/
一些量词如下
-
[]? --> 它将匹配括号中任何内容的出现 0 次或 1 次。
-
[]+ --> 检查是否发生 1 次或多次。
-
[] * --> 发生 0 次或多次。
-
[]{n} --> 出现 n 次。
-
[]{n,} --> 出现 n 次或更多次。
-
[]{n,m} --> 至少出现 n 次,但应少于 m 次。
项目。
我们将使用 RegEx 构建一个很酷的小项目来验证美国格式的手机号码。
function telephoneCheck(num){
let result = false;
const patterns = [
/^\d{3}-\d{3}-\d{4}/,
/^\d{10}$/,
/^\d{3}\s\d{3}\s\d{4}/,
/^\(\d{3}\)\d{3}-\d{4}/,
/^1\(\d{3}\)\d{3}-\d{4}/,
/^1\s\(\d{3}\)\s\d{3}-\d{4}/,
/^1\s\d{3}\s\d{3}\s\d{4}/,
/^1\s\d{3}-\d{3}-\d{4}/
]
result = patterns.some(reg => reg.test(num))
return result;
}
telephoneCheck("1 555 555 5555")
对于符合美国手机号码格式的每种格式,它将返回true ,否则将返回false 。
以下是有效的美国电话号码格式
555-555-5555
(555)555-5555
(555) 555-5555
555 5555
5555555555
1 555 555 5555
--
希望我能为大家带来一些好东西☺。欢迎大家提供反馈、建议等等。
祝您玩得开心、安全,非常感谢您花时间浏览这个博客❤。
你可以在Twitter上关注我💜😅
文章来源:https://dev.to/jaspalsingh1998/regex-in-javascript-with-a-cool-project-2e6m“让我们一起学习和成长。Adios amigos/amigas hasta la proxima vez 💜☕”