JavaScript代码-正则表达式基本语法入门

什么是正则表达式

由字母、数字、特殊符号构成的描述字符模式的表达式。

功能: 1.模式匹配

2.文本检索

3.替换功能。

定义法方法,有两种,分别为:

  1. 直接量定义法

var reg  = /表达式/修饰符

包含在一对/斜杠之间的字符。表达式不需要加引号,直接书写, 如var reg = /abcd/g

  1. 构造函数定义法

var reg = new RegExp( 表达式 , 修饰符  );

直接量定义法和构造函数定义法的区别在于:构造函数方法可以对表达式进行动态创建,如var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");name是一个变量,可以动态进行改变。

正则表达式的定义

1、var reg=new RegExp();

2、Var reg = /正则表达式/;

 

直接量字符

正则表达式中的所有的字母和数字都是按照字面含义进行匹配的。JavaScript正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜线(\)作为前缀进行转义。比如

\t代表制表符

\n 代表换行符

\r 代表回车符

元字符和反义

正则表达式语言由两种基本字符类型组成:原义(正常)

文本字符和元字符。元字符使正则表达式具有处理能力。

所谓元字符就是指那些在正则表达式中具有特殊意义的

专用字符,可以用来规定其前导字符(即位于元字符前面的

字符)在目标对象中的出现模式。

常用反义元字符: [ ]  {}   ()  ? *  +  /  ^  $  .

使用语法:\元字符

如:\[组合代表普通‘[’; \?组合代表普通的? ;\.代表普通的.

重复

用刚刚学过的正则表达式的语法,可以将两位数描述成/\d\d/,四位数描述成/\d\d\d\d/,但目前为止,还没有一种法法可以用来描述任意多位的数字,或者描述由三个字母和一个数字构成的字符串。这些正则表达式语法中较为复杂的模式都提到了正则表达式中某元素的”重复出现的次数”。

我们在正则模式之后跟随用以指定字符重复的标记。由于某些重复种类非常常用,因此就有一些专门用于表示这种情况的特殊字符。例如:

{n}   匹配前一项n次

如:/a{2}/表示a出现了2次

{n,m} 匹配前一项最少n次,最多m次

如:/a{2,5}/表示a最少2次,最多5次

{n,}  匹配前一项最少n次

如:/a{2,}/表示a最少2次

? 匹配0到1次   {0,1}

如:/a?/表示a出现0到1次

+  匹配1到多次  {1,}

如:/a+/表示a最少出现了1次

*  匹配0到多次  {0,}

如:/a*/表示a出现了0到多次

字符类

将直接量字符单独放到方括号[]内就组成了字符类。一个字符类可以匹配它所包含的任意字符。因此,正则表达式/[abc]/就和字母”a”,”b”,”c”中的任意一个都匹配。另外可以通过”^”符号来定义否定字符类,它匹配所有不包含在方括号内的字符。定义否定字符类时,将一个”^”符号作为左方括号内的第一个字符,则表达式/[^abc]/匹配的是”a”,”b”,”c”之外的所有字符。字符类可以使用连字符来表示字符范围。要匹配拉丁字母中的小写字母,可以使用/[a-z]/,要匹配拉丁字母表中任意的字母和数字,则使用/[a-z0-0A-Z]/。

由于某些字符类非常常用,因此在JavaScript的正则表达式语法中,使用了这些特殊字符的转义字符来表示它们。例如

.  除了换行符以外任意字符

\w   代表的是字母数字下划线 [a-zA-Z0-9_]

\W   代表的是非字母数字下划线

\d   代表数字  [0-9]

\D   非数字    [^0-9]

\s  空格字符

\S  非空格字符

\b   单词的边界

选择

正则表达式的语法还包括指定选择项、子表达式分组和引用前一子表达式的特殊字符。字符”|”用于分隔供选择的字符。例如

/ab|cd|ef/可以匹配”ab”,也可以匹配”cd”,也可以匹配字符’ef’

/\d{3}|[a-z]{4}/匹配三位数字或者4个小写字母

分组

正则表达式中圆括号()有多种作用,其中一个是把单独的项组合成子表达式,以便像一个独立的单元处理

比如/java(script)?/可以匹配字符串”java”,也可以匹配”javascript”

引用

在正则表达式中,圆括号的另一个作用是在完整的模式中定义子模式。当一个正则表达式成功地和目标字符串相匹配是,可以从目标中抽出和圆括号中子模式相匹配的部分。

例如,假定我们正在检索的模式是一个或者多个小写字母后面跟随以为或多位数字,则可以使用模式/[a-z]+\d/。但假定我们真正关心的是每个匹配尾部的数字,name如果将模式的数字部分放在括号中(/[a-z]+(\d+)/),就可以从检索到的匹配中抽取数字了。

指定匹配位置

^ 匹配字符串的开头

/^abc/ 表示匹配以abc开头的字符

$ 匹配字符串的末尾

/abc$/ 表示匹配以abc结尾的字符

修饰符

i  忽略大小写   执行不区分大小写的匹配

m  多行匹配  ^匹配一行的开头和字符串的开头,$匹配汉的结束和字符串的结束

g  全文匹配  找到所有的匹配,而不是找到第一个之后就停止。

综合应用

对用户名、手机号码、email、url地址等的检测



JavaScript代码-正则表达式基本语法入门

原文地址:https://www.cnblogs.com/LXbky/p/10218390.html

时间: 2024-10-06 15:13:13

JavaScript代码-正则表达式基本语法入门的相关文章

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

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

JavaScript 正则表达式——基本语法--图形化表示易懂

JavaScript 正则表达式——基本语法 定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%>','g'); 2. 字面量 var reg=/<%[^%>]%>/g; g: global,全文搜索,默认搜索到第一个结果接停止 i: ingore case,忽略大小写,默认大小写敏感 m: multiple lines,多行搜索(更改^

正则表达式30分钟入门教程

目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 更新纪录 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是--请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内

【转】正则表达式30分钟入门教程

首页 | 常用正则表达式 | 正则表达式测试工具 正则表达式30分钟入门教程 版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 更新纪录 本文目标 30分钟内让你明白正则表达式是什么,

正则表达式30分钟入门教程 都是复制的

正则表达式30分钟入门教程 来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”.请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂.当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门. 事实是,我身边有个才接触电脑,对操作都不是

正则表达式30分钟入门教程(转)

本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是--请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门--除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难.当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的--我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以

转 正则表达式30分钟入门教程

转 http://deerchao.net/tutorials/regex/regex.htm 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是--请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门--除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难.当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得

JavaScript RegExp 正则表达式基础详谈

前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时候,就去网上找现成的正则表达式来使用,像这样恐怕永远都是很难对正则有一个详细且全面的了解. 所以通过查阅书籍.网上的资料以及通过自己的理解.组织.表达,写了这篇<JavaScript RegExp 基础详谈>,算是对自己学习过程的一次总结梳理吧. 如果有什么欠缺,遗漏或者不足的地方,多多麻烦大家的

正则表达式30分钟入门教程(转)

来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”.请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂.当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门. 事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教