研究正则的原因是因为做前端技术支持,难免会遇到,要对用户的输入进行验证的时候。这些验证的规则各式各样,但是通常会用到正则表达式。
这是w3c的手册地址
. —— 匹配任意字符,(不包括换行符)* —— 该符号前面的字符,匹配 0 次或多次。
+ —— 该符号前面的字符,匹配 1次或多次
? —— 该符号前面的字符是可选的。匹配 0 次或 1 次。
\d —— 匹配任何单个数字。
\w —— 匹配任何一个字符(包括字母数字以及下划线)。
[XYZ] —— 匹配字符组中的任意一个字符,即 X、Y、Z 中的任意一个。
[XYZ]+ —— 匹配字符组中的一个或多个字符。
$ —— 匹配字符串结束的位置。
^ —— 匹配字符串开始的位置。
[^a-z] —— 当出现在字符类中时,^ 表示 NOT(非);对于该示例,表示匹配任何非小写字母。
javascript的中用到的正则表达式的方法主要有几种:
1、test()
这是一种最常见的正则验证的方法。例如:接收单字符串参数,返回一个布尔值。不需要对验证结果进行操作时,可以选择这个方法。
var nameReg = /^[a-zA-Z-_]+$/;
var name = "zhangyh"; alert(nameReg.test(name)); // 输出结果为true。
ps:这个用法中test所验证的结果,是只要有一个可以通过验证就返回真值。
2、split()
这种方法接收单项正则表达式,按照正则表达式(单个字母或者字符串)切分整个字符串。
var str = 'this is my string' ; alert(str.split(/\s/)); // 输出 "this, is, my, string"
还有根据索引可以取到分割之后的字符。
var str = 'this is my this string' ; alert(str.split(/\s/)[4]); // 输出"string"
ps:这个时候我想起了slice()的函数以及substring(), 区别是slice()可以接受为负数的参数。
3、replace()
这个方法可以用来将文本中的一部分(由字符串或者正则表达式)替换为不同的字符串。
var username = 'J;ohnSmith;@%'; username = username.replace(/[^A-Za-z\d_-]+/, ''); alert(username); // 输出;@%
显然这个函数的输入结果,跟我们所期望的不一样,原因何在呢?
为了通知引擎继续搜索字符串查找更多匹配,我们可以做结束的斜杠后面直接添加一个“g”,这个修饰符或标记表示“global(全局)”
var username = 'J;ohnSmith;@%'; username = username.replace(/[^A-Za-z\d_-]+/g, ''); alert(username); // 输出 JohnSmith
4、math()
返回的是个包含所有找到的满足条件的数组。
实例一:
var name = 'JeffreyWay'; alert(name.match(/e/)); // 输出 e;
拓展:
var name = 'JeffreyWay' ; alert(name.match(/e/g)); //增加全局变量 输出 e,e; var name = 'JeffreyWay' ; alert(name.match(/e/g)[1]); //输出对应的指定项 输出 e;
实例二:
var string = 'This is just a string with some 12345 and some !@#$ mixed in.'; alert(string.match(/[a-z]+/gi)); // 输出 "This,is,just,a,string,with,some,and,some,mixed,in"
这个输出结果之所以满足我们的想法主要是依赖于这个修饰的全局“g”以及不区分大小写的“i”,这个方法实现起来较为的轻松。如果想实现进一步的优化,输出指定的字符,增加索引即可。
var string = 'This is just a string with some 12345 and some !@#$ mixed in.' ;
alert(string.match(/[a-z]+/gi)[2]); // 输出 "just"
相关推荐
这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...
它在多种编程语言中都有应用,尤其是在JavaScript中,正则表达式被广泛用于数据验证、文本提取等方面。 #### 二、正则表达式的语法元素 正则表达式由一系列字符和特殊符号组成,用以匹配字符串中的特定模式。下面...
### JavaScript正则表达式详解 #### 一、正则表达式的创建 正则表达式是JavaScript中用于处理字符串的强大工具之一。它可以帮助我们查找、替换或提取文本中的特定模式。在JavaScript中创建正则表达式有两种基本...
### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...
标题与描述中的“js正则表达式笔记,直接运行”明确指出这是一份关于JavaScript正则表达式的笔记,其中包含了可以直接执行的代码示例。正则表达式在编程中是一种非常强大的工具,用于处理字符串模式匹配、搜索和替换...
在本文中,我们将深入探讨JavaScript正则表达式的基础知识,包括如何创建正则表达式、执行匹配以及在字符串对象上使用正则表达式的方法。 首先,表单验证是Web应用中必不可少的功能,其目的是在用户提交数据前检查...
4. **学习正则的学习笔记**:可能包含一份详细的正则表达式学习资料,涵盖了基础概念如元字符、量词、字符类等,以及高级特性如分组、后向引用、预查等,方便用户系统学习。 5. **正则表达式参考手册**:可能提供了...
在这个名为“Javascript正则表达式校验共7页.pdf.zip”的压缩包中,很可能是提供了一份详细的教程或笔记,涵盖了JavaScript正则表达式的基础到高级用法,共计7页内容。 正则表达式(Regular Expression)是由字符、...
在实际应用中,正则表达式不仅用于Java,还广泛应用于Python、JavaScript、C#等编程语言,甚至在许多文本编辑器和命令行工具中也有广泛的应用。例如,在JavaScript中,你可以直接在字符串方法`match()`、`replace()`...
这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和普通字符组成,用于描述文本模式。 - **创建方式**:可以使用`/pattern/flags`或`...
在实践中,书中会讨论如何在各种编程语言中使用正则表达式,如JavaScript、Python、Java等,并给出具体的示例代码,帮助读者理解如何在实际开发中应用正则表达式。此外,书中还会讲解正则表达式引擎的工作原理,这...
不同的编程语言和环境可能使用不同的正则表达式引擎,如Perl兼容正则表达式(PCRE)、JavaScript的正则表达式等,它们在语法细节和功能上可能存在差异。 七、实例应用 1. 邮箱验证:`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-...
JavaScript中的正则表达式是处理字符串的强大工具,用于匹配、替换、分割文本。它们在编程中扮演着不可或缺的角色,尤其在验证用户输入、提取数据、格式化内容等方面。以下是对正则表达式的基础知识和常见用法的详细...
在这个“正则表达式”学习笔记中,我们将深入探讨这一强大的工具。 1. **基础概念** - **字符集**:包括普通字符(如 `a`、`b`)和特殊字符(如 `.`、`\d`),它们组合起来形成匹配模式。 - **量词**:如 `*` ...
例如,`/hello regex/` 是一个简单的正则表达式,而 `new RegExp('模式', '修饰符')` 则是在 JavaScript 中创建正则表达式的方式。修饰符如 `i`(忽略大小写)、`g`(全局匹配)和 `m`(多行匹配)可以改变正则...
以下是对标题“正则表达式例子及笔记”和描述中的知识点进行的详细解释。 一、正则表达式基础 1. 字符类: - `.`:匹配任何单个字符,除了换行符。 - `\d`:匹配任意数字,等价于 `[0-9]`。 - `\D`:匹配非数字...
5. **保存与分享**:用户可以保存自己的正则表达式和匹配结果,方便日后复用或分享给他人,这对于团队协作或个人笔记非常有用。 6. **代码生成**:RegExr还能够自动生成对应编程语言的代码片段,例如JavaScript、...