JS正则表达式大全
js正则表达式 pdf
js正则表达式
JavaScript正则表达式(Regular Expression)是一个强大的文本处理工具,用于在字符串中执行模式匹配和搜索。
下面是关于如何使用JavaScript正则表达式的一些基本知识。
一、基础语法:
正则表达式由模式和修饰符组成。模式用于定义您希望匹配的字符串模式,而修饰符用于定义如何解释该模式。
1.字符类(Character Classes):定义一组字符,匹配该组中的任何字符。例如,`[aeiou]`匹配任何一个元音字母。
2.限定符(Quantifiers):定义匹配的次数。例如,`*`表示匹配前一个字符0次或多次,`+`表示匹配前一个字符1次或多次。
3.选择符(Alternation):用`|`分隔不同的模式,表示匹配任何一个模式。
4.转义(Escaping):对特殊字符进行转义,例如`\d`匹配任何数字。
5.修饰符(Modifiers):改变正则表达式的默认行为,例如`i`使得匹配不区分大小写。
二、例子:
下面是一个简单的JavaScript正则表达式,用于检查一个字符串是否包含数字:
```javascript
let regex=/\d/;//匹配任何数字
let result=regex.test("Hello123World");//true
```
在上面的例子中,`\d`是一个字符类,代表任何数字。`test()`方法用于检查字符串是否匹配正则表达式。
三、进阶特性:
贪婪与非贪婪匹配:例如,`a*`将匹配尽可能多的'a'字符,而`a*?`将匹配尽可能少的'a'字符。
史上最全常用正则表达式大全
史上最全常⽤正则表达式⼤全
很多不太懂正则的朋友,在遇到需要⽤正则校验数据时,往往是在⽹上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常⽤的⼀些正则表达式整理了⼀下,在这⾥分享⼀下。给⾃⼰留个底,也给朋友们做个参考。
⼀、校验数字的表达式
1. 数字:^[0-9]*$
2. n位的数字:^\d{n}$
3. ⾄少n位的数字:^\d{n,}$
4. m-n位的数字:^\d{m,n}$
5. 零和⾮零开头的数字:^(0|[1-9][0-9]*)$
6. ⾮零开头的最多带两位⼩数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7. 带1-2位⼩数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8. 正数、负数、和⼩数:^(\-|\+)?\d+(\.\d+)?$
9. 有两位⼩数的正实数:^[0-9]+(.[0-9]{2})?$
10. 有1~3位⼩数的正实数:^[0-9]+(.[0-9]{1,3})?$
11. ⾮零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12. ⾮零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13. ⾮负整数:^\d+$ 或 ^[1-9]\d*|0$
14. ⾮正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15. ⾮负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
js正则表达式详细教程
js正则表达式详细教程
//校验是否全由数字组成
[code] function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code]
//校验登录名:只能输⼊5-20个以字母开头、可带数字、“_”、“.”的字串
[code] function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } [/code]
//校验⽤户姓名:只能输⼊1-30个以字母开头的字串
[code] function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校验密码:只能输⼊6-20个字母、数字、下划线 [code] function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } [/code]
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
[code] function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]) {1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]
常用正则表达式、JS中的正则以及ES6的扩展
常⽤正则表达式、JS中的正则以及ES6的扩展
⼀、常见的正则表达式汇总
之前的时候,写过⼀个这么粗略的正则表达式:使⽤正则让userName必须为1到3位,否则显⽰格式不正确!
代码如下:
rules: [
{
required: true,
message: formatMessage({ id: 'erName.required' }),
},
{
pattern: /^\d{1,3}$/,
message: formatMessage({ id: 'erName.wrong-format' }),
},
],
1、正则表达式
正则表达式,英⽂名为Regular Expression,作⽤是⽤于匹配字符串。如果想要练⼿的话,就去https:///这个⽹址尽情的练去吧。(注意:以下所有的命令都是被包在//g⾥⾯的,我只是省略了没写,注意,还是要包括在//g⾥⾯的!)
2、匹配任意字符
【//g】:⾥⾯是要匹配的字符;
【/王../g】:匹配“王”字后⾯的两个字;
【/./g】:匹配任意⼀个字符,即使输⼊的是⼀个空格,也能匹配到。只有⼀个例外,断⾏不会被匹配到;
【/../g】:两个点的话只能匹配两个字符,⽐如(王花)花,只能匹配到前两个字符。有⼏个点就匹配⼏个字符;
【3.14】:由于点代表了任意字符,所以,可以检测到(3-14),因为点代表了任意字符;
【3\.14】:这样检测到的就是(3.14)了,反斜杠代表的是转义,只能匹配点,短横线就不可以了;
3、匹配字母和数字
【\w】:⼩写的w,只匹配数字、⼤⼩写字母和下划线"_",⼀般⽤户名都是由这些组成的;
js 验证 常用正则
js 验证常用正则
JavaScript是一个非常强大的脚本语言,它是web开发中最广泛使用的语言之一。它可以用于开发交互式网页以及许多其他应用程序。JavaScript中的正则表达式是非常重要的,它可以用来验证用户输入
的数据,例如电子邮件、电话号码、日期、时间等等。在这篇文章中,我们将探讨一些常用的JavaScript正则表达式。
1. 验证电子邮件
首先,我们来讨论一下如何验证一个电子邮件地址。在
JavaScript中,我们可以使用正则表达式来实现这个功能。首先,我
们需要一个包含电子邮件地址的字符串:
```javascript
varemail="*******************";
```
然后,我们需要一个正则表达式来验证电子邮件地址。下面是一
个简单的正则表达式,可以匹配大部分电子邮件地址:
```javascript
var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
```
现在,我们可以使用test()方法,将我们的电子邮件地址和正则表达式传递给它来验证电子邮件地址:
```javascript
if (emailPattern.test(email)) {
console.log("Valid email address");
} else {
console.log("Invalid email address");
}
```
2. 验证电话号码
下一个正则表达式,我们将探讨如何验证电话号码。在
JavaScript中,我们可以使用正则表达式来验证电话号码。首先,我
js常用的正则表达式
js常用的正则表达式
前言
JavaScript中的正则表达式被广泛用于字符串的匹配和替换,可以让代码更加优雅和高效。本文将介绍JS中常用的正则表达式及其用法,希望能对初学者有所帮助。
一、基本语法
正则表达式由字面值和特殊字符两种类型组成。字母、数字、空格等都表示字面值,而特殊符号则表示特定含义,例如/d代表数字,/s代表空格等。正则表达式用斜杠“/”将其包裹起来。
二、常用正则表达式
1. 匹配IP地址
/^(\d{1,3}\.){3}\d{1,3}$/
使用说明: \d表明是数字,{1,3}表明可以是一个到三个数字,\.表示点,^表示字符串开始,$表示字符串结束。
2. 匹配邮箱
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
使用说明: \w表示字母数字下划线,[-+.]表示这些特殊字符中的一个,*表示出现零次或多次。
3. 匹配电话号码
/^[1][3,4,5,7,8][0-9]{9}$/
使用说明: [1]表示以1开头,[3,4,5,7,8]表示第二个数字只能是这些中的一个,[0-9]{9}表示后面必须跟九个数字。
4. 匹配URL地址
/^(http|https):\/\/[a-zA-Z0-9]+[\.a-zA-Z0-9_-]*[a-zA-Z0-9]+(\/\S*)?$/
使用说明: (http|https)表示http或https,\/\/表示两个斜杠,[a-zA-Z0-9]表示字母数字任意一个,+表示一个或多个,[\.a-zA-Z0-9_-]*表示出现零次或多次,\/表示斜杠,\S表示任意一个非空
js数字的正则表达式
js数字的正则表达式
正则表达式是一种用来描述、匹配文本模式的工具。在 JavaScript 程序中,正则表达式能够轻松地处理文本、对文本进行快速的搜索、替换和分离等操作。其中,表示数字的正则表达式是十分常见的,下面将介绍一些常用的 js 数字正则表达式。
1. 匹配整数:
匹配一个整数,我们需要使用 ^ 和 $ 来匹配一个完整的数字。大部分正则表达式都是以/ /(斜杠)包围起来的,形如:
/^\d+$/
其中,\d 表示匹配任意数字,+ 表示至少出现一次以上。该正则表达式可以匹配任意多位数字的组合,但不能识别前导零和负号。
2. 匹配浮点数:
如果需要使用正则表达式匹配一个浮点数时,我们可以使用以下正则表达式:
/^[+-]?\d*\.?\d+$/
其中,+表示匹配一个或多个,*表示匹配零个或多个。该正则表达式可以匹配 "+45"、"-5.5"、"5.5"、"5." 和 ".5" 这样的数字。
3. 匹配零和非零开头的数字:
如果我们需要匹配只以零开头的数字,可以使用以下正则表达式:
/^0$|^0[0-9]+$/
其中,| 表示逻辑或操作。
如果我们需要匹配非零开头的数字,可以使用这个正则表达式:
/^[1-9]\d*$/
其中,[1-9] 表示匹配任意非零数字,\d* 表示匹配任意多位数字。
4. 匹配数字范围:
如果我们需要匹配数字的特定范围,例如 1 到 100 之间的数字,我们可以使用以下正则表达式:
/^([1-9][0-9]?|100)$/
该正则表达式只能匹配数字 1-100 之间的数字,不能识别前导零和非数字符号。
JS正则表达式语法大全(非常详细)
JS正则表达式语法⼤全(⾮常详细)
正则表达式是⼀种通⽤的⼯具,在 Script、、Java、、等⼏乎所有的编程语⾔中都能使⽤;但是,不同编程语⾔对正则表达式语法的⽀持不尽相同,有的编程语⾔⽀持所有的语法,有的仅⽀持⼀个⼦集。本节讲到的正则表达式语法适⽤于 JavaScript。
正则表达式的语法体现在字符模式上。字符模式是⼀组特殊格式的字符串,它由⼀系列特殊字符和普通字符构成,其中每个特殊字符都包含⼀定的语义和功能。
描述字符
根据正则表达式语法规则,⼤部分字符仅能够描述⾃⾝,这些字符被称为普通字符,如所有的字母、数字等。
元字符就是拥有特动功能的特殊字符,⼤部分需要加反斜杠进⾏标识,以便于普通字符进⾏区别,⽽少数元字符,需要加反斜杠,以便转译为普通字符使⽤。JavaScript 正则表达式⽀持的元字符如表所⽰。
元字符
元字符描述
.查找单个字符,除了换⾏和⾏结束符
\w查找单词字符
\W查找⾮单词字符
\d查找数字
\D查找⾮数字字符
\s查找空⽩字符
\S查找⾮空⽩字符
\b匹配单词边界
\B匹配⾮单词边界
\0查找 NUL字符
\n查找换⾏符
\f查找换页符
\r查找回车符
\t查找制表符
\v查找垂直制表符
\xxx查找以⼋进制数 xxxx 规定的字符
\xdd查找以⼗六进制数 dd 规定的字符
\uxxxx查找以⼗六进制 xxxx规定的 Unicode 字符
表⽰字符的⽅法有多种,除了可以直接使⽤字符本⾝外,还可以使⽤ ASCII 编码或者 Unicode 编码来表⽰。
⽰例1
下⾯使⽤ ASCII 编码定义正则表达式直接量。
js正则表达式
常用的JavaScript验证正则表达式下面都是我收集的一些比较常用的正则表达式,因为平常可能在表单验证的时候,用到的比较多。特发出来,让各位朋友共同使用。呵呵。匹配中文字符的正则表达式: [u4e00-u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^x00-xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:ns*r评注:可以用来删除空白行匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力匹配首尾空白字符的正则表达式:^s*|s*$评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*评注:表单验证时很实用匹配网址URL的正则表达式:[a-zA-z]+://[^s]*评注:网上流传的版本功能很有限,上面这个基本可以满足需求匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$评注:表单验证时很实用匹配国内电话号码:d{3}-d{8}|d{4}-d{7}评注:匹配形式如 0511-******* 或 021-********匹配腾讯QQ号:[1-9][0-9]{4,}评注:腾讯QQ号从10000开始匹配中国邮政编码:[1-9]d{5}(?!d)评注:中国邮政编码为6位数字匹配身份证:d{15}|d{18}评注:中国的身份证为15位或18位匹配ip地址:d+.d+.d+.d+评注:提取ip地址时有用匹配特定数字:^[1-9]d*$ //匹配正整数^-[1-9]d*$ //匹配负整数^-?[1-9]d*$ //匹配整数^[1-9]d*|0$ //匹配非负整数(正整数 + 0)^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)评注:处理大量数据时有用,具体应用时注意修正匹配特定字符串:^[A-Za-z]+$ //匹配由26个英文字母组成的字符串^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串^[a-z]+$ //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:只能输入数字:“^[0-9]*
JS常用正则表达式总结【经典】
JS常⽤正则表达式总结【经典】本⽂实例讲述了JS常⽤正则表达式。分享给⼤家供⼤家参考,具体如下:
在项⽬中个⼈写的⼀个常⽤验证的正则表达式:(仅供参考)
//定义两个全局变量
var reg;
var errorInfo;
//输⼊的数字类型必须是int型,正负整数都可以
function validate_integer(text,value){
reg=/^[-\+]?\d+$/;
errorInfo=text+" "+value+" 只能是整数,请核实重新输⼊!";
verifyByReg(value,reg,errorInfo);
}
//输⼊的数字类型必须是double型,保留的⼩数位数只能是2位,可以为正负
function validate_double(text,value){
reg=/^[-\+]?([1-9](\d+)?|0)(\.\d{2})$/;
errorInfo=text+" "+value+" 只能保留2为⼩数,请核实重新输⼊";
verifyByReg(value,reg,errorInfo);
}
//输⼊的必须是全是数字类型型,不能出现其他字符
function validate_number(text,value){
reg=/^\d+$/;
errorInfo=text+" "+value+" 只能是数字,请核实重新输⼊";
verifyByReg(value,reg,errorInfo);
}
//验证输⼊n位的数值类型
function validate_number_n(text,value,n){
js输入法正则表达式
js输入法正则表达式
正则表达式可以用于对输入法进行限制和验证。下面是一些常见的正则表达式示例:
1. 禁止输入全角字符:
```
/^[^\uFF00-\uFFFF]*$/
```
2. 限制只能输入数字:
```
/^\d*$/
```
3. 限制只能输入英文字母(不区分大小写):
```
/^[a-zA-Z]*$/
```
4. 限制只能输入汉字:
```
/^[\u4e00-\u9fa5]*$/
```
5. 限制输入的长度在6到12之间:
```
/^.{6,12}$/
```
6. 限制输入的只能是字母和数字:
```
/^[a-zA-Z0-9]*$/
```
这些只是一些示例,你可以根据具体需求和输入法的特点来进行调整。
JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)
JS常⽤正则表达式和JS控制输⼊框输⼊限制(数字、汉字、字符)⽤js控制输⼊框input数字、汉字、字符
1.⽂本框只能输⼊数字代码(⼩数点也不能输⼊)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2.只能输⼊数字,能输⼩数点.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输⼊数字');this.value='';}">
3.数字和⼩数点⽅法⼆
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?
$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?
$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?
js常用正则表达式大全--如:数字,字符等
js常⽤正则表达式⼤全--如:数字,字符等
⼀、校验数字的表达式
1 数字:^[0-9]*$
2 n位的数字:^\d{n}$
3 ⾄少n位的数字:^\d{n,}$
4 m-n位的数字:^\d{m,n}$
5 零和⾮零开头的数字:^(0|[1-9][0-9]*)$
6 ⾮零开头的最多带两位⼩数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 带1-2位⼩数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和⼩数:^(\-|\+)?\d+(\.\d+)?$
9 有两位⼩数的正实数:^[0-9]+(.[0-9]{2})?$
10 有1~3位⼩数的正实数:^[0-9]+(.[0-9]{1,3})?$
11 ⾮零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 ⾮零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 ⾮负整数:^\d+$ 或 ^[1-9]\d*|0$
14 ⾮正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 ⾮负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 ⾮正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
【IT专家】常用js正则表达式大全
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
常用js正则表达式大全
s正则表达式大全51xuediannao/javascript/zhengzedaquan.htmltips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
js 3到17位数字正则
要匹配3到17位的数字,你可以使用以下正则表达式:
regex
^\d{3,17}$
这个正则表达式的含义是:
1.^:匹配字符串的开始。
2.\d{3,17}:匹配3到17个数字。\d 代表一个数字字符,{3,17} 表示前面的
模式(在这里是\d)重复3到17次。
3.$:匹配字符串的结束。
这样,这个正则表达式将匹配任何长度为3到17位的数字字符串。
js正则表达式全集
表达式全集
字符描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\ n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。
^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multili ne属性,^也匹配“\n”或“\r”之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multili ne属性,$也匹配“\n”或“\r”之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“z oo”。*等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“d oes”或“does”中的“do”。?等价于{0,1}。
{n} n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“B ob”中的“o”,但是能匹配“food”中的两个o。
{n,} n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“B ob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
{n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JS正则表达式大全
JS正则表达式大全【1】
正则表达式中的特殊字符【留着以后查用】字符含意
\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。
-或-
对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。
^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz] 不匹配这个集合中的任何一个字符
[\b] 匹配一个退格符
\b 匹配一个单词的边界
\B 匹配一个单词的非边界
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一个制表符
\v 匹配一个重直制表符
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配
"$5.98"中的5,等于[a-zA-Z0-9]
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。
JS正则表达式大全【2】
正则表达式是一个描述字符模式的对象。
JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法.
在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象, 也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样, 正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的代码:
var pattern = /s$/;
这行代码创建一个新的RegExp对象,并将它赋给变量parttern.这个特殊的RegExp对象和所有以字母"s"结尾的字符串都匹配.用RegExp()也可以定义一个等价的正则表达式,代码如下:
var pattern = new RegExp("s$");
无论是用正则表达式直接量还是用构造函数RegExp(),创建一个RegExp对象都是比较容易的.较为困难的任务是用正则表达式语法来描述字符的模式.
JavaScript采用的是Perl语言正则表达式语法的一个相当完整的子集.
正则表达式的模式规范是由一系列字符构成的.大多数字符(包括所有字母数字字符)描述的都是按照字面意思进行匹配的字符.这样说来,正则表达式/java/就和所有包含子串"java" 的字符串相匹配.虽然正则表达式中的其它字符不是按照字面意思进行匹配的,但它们都具有特殊的意义.正则表达式/s$/ 包含两个字符.
第一个特殊字符"s" 是按照字面意思与自身相匹配.第二个字符"$" 是一个特殊字符,它所匹配的是字符串的结尾.所以正则表达式/s$/ 匹配的就是以字母"s" 结尾的字符串.
1.直接量字符
我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript 的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非字母字符.例如,序列"\n" 在字符串中匹配的是一个直接量换行符.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义: 正则表达式的直接量字符
字符匹配
________________________________
字母数字字符自身
\ f 换页符
\ n 换行符
\ r 回车
\ t 制表符
\ v 垂直制表符
\ / 一个/ 直接量
\ \ 一个\ 直接量
\ . 一个. 直接量
\ * 一个* 直接量
\ + 一个+ 直接量
\ ? 一个? 直接量
\ | 一个| 直接量
\ ( 一个( 直接量
\ ) 一个) 直接量
\ [ 一个[ 直接量
\ ] 一个] 直接量
\ { 一个{ 直接量
\ } 一个} 直接量
\ XXX 由十进制数XXX 指定的ASCII码字符
\ Xnn 由十六进制数nn 指定的ASCII码字符
\ cX 控制字符^X. 例如, \cI等价于\t, \cJ等价于\n
___________________________________________________
如果想在正则表达式中使用特殊的标点符号,必须在它们之前加上一个"\" .
2.字符类
将单独的直接符放进中括号内就可以组合成字符类.一个字符类和它所包含的任何一个字符都匹配,所以正则表达式/ [abc] / 和字母"a" , "b" , "c" 中的任何一个都匹配.另外还可以定义否定字符类,这些类匹配的是除那些包含在中括号之内的字符外的所有字符.定义否定字符尖时,要将一个^ 符号作为从左中括号算起的第一个字符.正则表达式的集合是/ [a-zA-z0-9] / .
由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符.
正则表灰式的字符类
字符匹配
____________________________________________________
[...] 位于括号之内的任意字符
[^...] 不在括号之中的任意字符
. 除了换行符之外的任意字符,等价于[^\n]
\w 任何单字字符, 等价于[a-zA-Z0-9]
\W 任何非单字字符,等价于[^a-zA-Z0-9]
\s 任何空白符,等价于[\ t \ n \ r \ f \ v]
\S 任何非空白符,等价于[^\ t \ n \ r \ f \ v]
\d 任何数字,等价于[0-9]
\D 除了数字之外的任何字符,等价于[^0-9]
[\b] 一个退格直接量(特例)
________________________________________________________________
3.复制
用以上的正则表式的语法,可以把两位数描述成/ \ d \ d /,把四位数描述成/ \d \ d \ d \ d /.但我们还没有一种方法可以用来描述具有任意多数位的数字或者是一个字符串.这个串由三个字符以及跟随在字母之后的一位数字构成.这些复杂的模式使用的正则表达式语法指定了该表达式中每个元素要重复出现的次数.
指定复制的字符总是出现在它们所作用的模式后面.由于某种复制类型相当常用.所以有一些特殊的字符专门用于表示它们.例如: +号匹配的就是复制前一模式一次或多次的模式.下面的表列出了复制语法.先看一个例子:
/\d{2, 4}/ //匹配2到4间的数字.
/\w{3} \d?/ //匹配三个单字字符和一个任意的数字.
/\s+java\s+/ //匹配字符串"java" ,并且该串前后可以有一个或多个空格.
/[^"] * / //匹配零个或多个非引号字符.