研究正则的原因是因为做前端技术支持,难免会遇到,要对用户的输入进行验证的时候。这些验证的规则各式各样,但是通常会用到正则表达式。
这是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开发时看正则表达式方便点
NULL 博文链接:https://jeffreyqiu.iteye.com/blog/1738371
JavaScript正则表达式学习资料笔记 很适合初学者,讲的非常详细、全面。
js正则表达式笔记,可以运行,正则 笔记
javascript正则表达式入门学习实例入门
北风网正则表达式详细讲解学习笔记,讲解的比较基础适合初学者学习。
一:表单验证的实现思路 1. 获取表单元素的值,一般是string类型,包含数字,下划线。 2. 以业务规则,用js一些方法对数据进行判断, 3. 表单form有一个事件onsubmit,他是在提交之前调用的,因此可以在提交表单时...
JavaScript学习笔记包括正则表达式、异常处理、调试、关键字等
正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。 首先推荐几个正则表达式编辑器 Debuggex :...
正则表达式在web开发中会经常用到,主要用于验证用户输入的数据的格式。
正则表达式是javascript操作字符串的一个重要组成部分,然而,在ES6中,随着字符串操作的变更, ES6也对正则表达式进行了一些更新。本文将详细介绍ES6正则表达式扩展
在上篇文章给大家介绍了javascript正则表达式和字符串RegExp and String(一),本文给大家继续分享相关内容。 前言 我认为,在学习一门编程语言的过程中,字符串、数组、容器是非常重要的部分,为了提高编程效率,...
php正则表达式学习笔记分享: 1.创建正则表达式 $regex = ‘/\d/i’; 与JavaScript中的第一个方式有点像,只是这里的话是个字符串。 2.正则表达式中的特殊字符 特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! < ...
HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。
主要介绍了JavaScript正则表达式迷你书之贪婪模式-学习笔记,需要的朋友可以参考下
1、创建正则表达式 第一种方式:注意这里的正则表达式不能使用单引号或者双引号,如下 var pattern1 = /[abc]/i; // 匹配第一个”a”或”b”或”c”,不区分大小写 第二种方式:使用RegExp构造函数创建,该构造函数...