JavaScript(3)—— 正则表达式

---恢复内容开始---

正则表达式

这是写的正则表达式,正则表达式的点比较多,也比较细。所以有些地方我们得注意的比较多。正则表达式在JS中是很重要的一个部分,其中他的语法都得牢记。不过最好还是理解性记忆会比较好。额,好像没啥可以说的了,好好加油。努力多点进度,,恩。

【正则表达式】

使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。也就是按照某种规则(正则表达式)去匹配符合条件的字符串。

【语法】

在JS中,通过内置对象RegExp支持正则表达式。

有字面量跟构造函数这两种方式实例化RegExp对象。

字面量:语法:var 变量=/正则表达式文本/修饰符(g/i/m);

g:global,全文搜索,默认搜索到第一个结果停止;

i: ingore case,忽略大小写,默认大小写敏感;

m:multiple lines,多行搜索;

如:var reg=/\bis\b/g;(其中\bis\b代表搜索is)

构造函数:语法: var 变量=RegExp(‘正则表达式文本‘,‘修饰符(g/i/m)‘);

【其他】

元字符:在正则表达式中含有特殊含义的非字母字符。如\b代表的单词边界。

特殊字符(如 *,+,$,^,|,\,(),{},[])这些元字符必须用右斜线‘\’来转义。

字符类:一般情况下,正则表达式一个字符对应字符串一个字符。若要匹配多项,可以用元字符[]来构建一个简单的类(符合某些特征的对象,甚至是一个泛指,而不是特指)。

如:要匹配abc字母,就可以用[abc],把字母a,b,c归为一类,表达式就可以同时匹配这三个字符。

字符类取反:用^来表示,如[^abc],就是匹配除字母a,b,c之外的字符。

范围类:就是匹配这一范围类的字符,用[];如:[a-z],代表的就是匹配小写字母a到z的字符,包括a跟z,同义,[0-9]代表匹配数值0-9的任意字符,范围类内部可以连写,所以[a-zA-Z0-9]代表匹配大小写字母跟数字的一个范围类。

预定义类:‘.’             ‘ 除了回车符跟换行符之外的所有字符’

     ‘\d’           ‘数字字符‘

     ‘\D‘     ‘非数字字符‘

       ‘\s‘       ‘空白符‘

      ‘\S‘     ‘非空白符‘

     ‘\w‘          ‘单词字符(字母、数字、下划线)‘

     ‘\W‘         ‘非单词字符‘

如:ab[0-9][^\r\n]就如同ab\d.(匹配的是数字及除了回车符跟换行符的任意字符)

边界:就是在正则表达式中决定开头、结尾的字符。如

     ‘^’            ‘ 以***开始’

     ‘$’            ‘以***结尾‘

     ‘\b‘     ‘单词边界‘

       ‘\B‘       ‘非单词边界‘

量词:匹配一个出现n次的字符串。如:

     ‘?’            ‘出现零次或一次’

     ‘+’            ‘至少出现一次‘

     ‘*‘        ‘出现任意次‘

       ‘{n}‘       ‘出现n次‘

     ‘{n,m}’      ‘ 出现n到m次’

     ‘{n,}’          ‘至少出现n次‘

贪婪模式(默认):尽可能多的匹配。如:‘12345678‘.replace(‘/\d{3,6}/g‘,X)则会变成X78;

非贪婪模式:让正则表达式尽可能少的匹配。在量词后面加上?即可。如;‘12345678‘.replace(‘/\d{3,6}?/g‘,X)则会变成XX78;

分组:让一个单词hello匹配三次,并不是hello{3}(这是在hell紧挨的字符(即o)匹配三次)。所以得用()分组,即变为(hello){3}。而若想忽略分组,则在()中添加?:即可。

或(|):如:‘helloword‘.replace(‘hello|word‘,‘X‘)的匹配结果为XX;而‘helloper‘.replace(‘hel(lo|p)er‘,‘X‘)的匹配结果为XX。

反向引用:如:想将1997-11-21换成11/21/1997,位置会发生变动。则:‘1997-11-21‘.replace(‘(\d{4})-(\d{2})-(\d{2})‘,‘$2$1$3‘)。使用$n代表一个整体变量。

前瞻:正则表达式是从文本头部向尾部解析,文本尾部方向称为前。前瞻就是在正则表达式匹配到规则的时候,向前检查是否符合断言,后瞻方向相反。JS不支持后顾。

符合和不符合的特定断言,称为肯定/正向匹配和否定/负向匹配。

正向前瞻:exp(?=assert);如 ‘a2*34vv‘.replace(/\w(?=\d)/,‘X‘)匹配结果为X3*X4vv。

负向前瞻:exp(?!assert);如 ‘a2*34vv‘.replace(/\w(?!\d)/,‘X‘)匹配结果为aX*3XXX。

对象属性:除了前面的g,i,m外,还有:

lastIndex:是当前表达式匹配内容的最后一个字符的下一个位置。

source:正则表达式的文本字符串。

【正则表达式方法】

本身的方法:test跟exec方法

test方法(RegExp.prototype.test(str)):用于测试字符串参数中是否存在匹配正则表达式模式的字符串。

exec方法(RegExp.prototype.exec(str)):使用正则表达式模式对字符串搜索,并将更新全局RegExp对象的属性以反映匹配结果。如果没有匹配的文本则返回null,否则则返回一个结果数组:

-index  声明匹配文本的第一个字符位置。

-input  存放被检索的字符串string。

调用非全局的RegExp对象的exec()方法时,返回数组。第一个元素是与正则表达式相匹配的文本,第二个元素是与RegExpObject第一个表达式相匹配的文本(如果有的话),第二个元素是与RegExp对象第二个表达式相匹配的文本(如果有的话),以此类推。

---恢复内容结束---

时间: 2024-10-29 10:45:46

JavaScript(3)—— 正则表达式的相关文章

JavaScript使用正则表达式

2.0 简介 正则表达式是可以用来查找与给定模式匹配的文本的搜索模式.例如,在上一章中,我们在一个较长的字符串中查找子字符串Cookbook: var testValue = "This is the Cookbook's test string"; var subsValue = "Cookbook"; var iValue = testValue.indexOf(subsValue); //返回值12,即子字符串的索引 这段代码有效,因为我们要查找一个严格的匹配

Javascript 与正则表达式

Javascript 与正则表达式 正则表达式的定义 正则表达式与字符串对象相关的方法 相关示例 一.正则表达式(regular expression简称res) 1.定义: 一个正则表达式就是由普通字符以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 2.作用: 正则表达式提供了功能强大.灵活而又高效的方法来处理文本.正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字

如何使用JavaScript和正则表达式进行数据验证

利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈 数据验证是网络应用软件从客户端接受数据的重要步骤,毕竟,您需要在使用客户数据前确保其符合预期的格式.在网络应用程序中,您可以选择使用特定平台的工具,比如ASP.NET.JSP等等,或者您可以利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作. 正则表达式 正则表达

JavaScript中正则表达式判断匹配规则以及常用的方法

JavaScript中正则表达式判断匹配规则以及常用的方法: 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配"了. \d可以匹配一个数字                 '00\d'可以匹配'007' ,'\d\d\d'可以匹配'010' \w可以匹配一个字母或数字      '\w\w'可以匹配'js' \s可

javascript类型系统——正则表达式RegExp类型

× 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,使用正则表达式可以进行强大的模式匹配和文本检索与替换.本文将介绍正则表达式的RegExp对象,以及正则表达式涉及到的属性和方法 对象 javascript中的正则表达式用RegExp对象表示,有两种写法:一种是字面量写法:另一种是构造函数写法 Perl写法 正则表达式字面

Javascript学习-------正则表达式

Javascript RegExp对象(正则表达式对象): RegExp:是一种模式. 当你要检索某个文本时,可以使用这种模式来描述要检索的内容. 创建RegExp对象: 使用RegExp的显式构造函数创建:             new RegExp("pattern"[,flags])        使用RegExp的隐式构造函数创建:             /pattern/[flags] 解释:pattern是要使用的正则表达式模式文本 flags设置正则表达式的标志信息

JavaScript常用正则表达式与应用(一)

JavaScript的String类和RegExp对象类都定义了相关方法使用正则表达式进行模式匹配,本文将以连载方式介绍JavaScript常用正则表达式与相关应用,欢迎交流 本节是连载一,首先介绍JavaScript语言常用的正则表达式,如何应用将在后几篇介绍. 所有案例将采用在线正则表达式验证工具RegExr进行测试,地址是:http://regexr.com/v1/,本节测试截图均来自该网站. 1.匹配字符串字面值: 正则表达式字面值包含在一对正斜杠内,如:var parttern=/P/

javascript中正则表达式的基础语法

× 目录 [1]定义[2]特点[3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的基础语法 定义 正则表达式(Regular Expression)是一门简单语言的语法规范,是强大.便捷.高效的

javascript之正则表达式基础知识小结

javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移. 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1.直接量 /javascript/ 匹配带有“javascript”的字符串 比如“javascript is an object-oriented scripting language” 2.[

数往知来 JavaScript js正则表达式<二十五>

1.匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 评注:表单验证时很实用 2.匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 3.匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用 4.匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 评注:匹配形式如 051