JS正则表达式大全

合集下载

js 整数 正则表达式

js 整数 正则表达式

js 整数正则表达式JavaScript中使用正则表达式来匹配整数非常常见。

正则表达式是一种用于描述字符串模式的语法,可以用来进行字符串匹配、替换和提取等操作。

在JavaScript中,可以使用正则表达式字面量或RegExp对象来创建正则表达式。

要匹配整数,可以使用以下正则表达式:```javascript/^-?\d+$/```其中,`^`表示字符串的开始,`-?`表示可选的负号,`\d+`表示一个或多个数字,`$`表示字符串的结束。

这个正则表达式可以匹配不带任何符号的正整数,也可以匹配带有负号的整数。

下面是一些示例:```javascriptconsole.log(/^-?\d+$/.test("123")); // trueconsole.log(/^-?\d+$/.test("-456")); // trueconsole.log(/^-?\d+$/.test("7.8")); // falseconsole.log(/^-?\d+$/.test("abc")); // false```第一个示例中的字符串"123"是一个正整数,所以返回true。

第二个示例中的字符串"-456"是一个负整数,所以也返回true。

第三个示例中的字符串"7.8"包含小数点,所以不是一个整数,返回false。

第四个示例中的字符串"abc"不包含任何数字,所以也不是一个整数,返回false。

除了使用`test`方法来检测字符串是否匹配整数正则表达式,还可以使用`match`方法来提取匹配的整数。

`match`方法返回一个数组,包含所有匹配的子字符串。

例如:```javascriptconsole.log("123abc456".match(/-?\d+/g)); // ["123", "456"] console.log("-789 0123".match(/-?\d+/g)); // ["-789", "0123"]```第一个示例中的字符串"123abc456"包含两个整数"123"和"456",所以返回一个包含这两个整数的数组。

js坐标正则表达式

js坐标正则表达式

js坐标正则表达式
如果你想在JavaScript中匹配坐标格式(例如:纬度经度坐标),你可以使用正则表达式。

一个简单的例子可能如下所示:
```javascript
const regex = /^(-?\d{1,2}\.\d{1,5})\,(-?\d{1,3}\.\d{1,5})$/;
```
这个正则表达式匹配如下的格式:
`纬度`:范围从-90到90,精度为小数点后5位。

`经度`:范围从-180到180,精度为小数点后5位。

注意,这个正则表达式没有考虑到一些特殊情况,例如:
超过范围的坐标(例如,纬度超过90或低于-90,经度超过180或低于-180)。

无效的格式(例如,纬度和经度之间没有逗号,或者没有数字)。

如果需要处理这些特殊情况,你可能需要使用更复杂的正则表达式或者额外的逻辑来验证输入的坐标。

js常用正则表达式语法大全

js常用正则表达式语法大全

js常用正则表达式语法大全正则表达式是一种强大而灵活的文本匹配工具,在JavaScript中广泛应用于字符串操作、表单验证、搜索和替换等场景。

掌握正则表达式的语法对于JavaScript开发者来说是至关重要的。

本文将介绍JavaScript中常用的正则表达式语法。

1. 基本语法1.1 字面量表示法var regex =/pattern/;1.2 构造函数表示法var regex =new RegExp("pattern");2. 元字符元字符是正则表达式中具有特殊含义的字符。

2.1 普通字符普通字符匹配其字面值,例如:var regex =/abc/;2.2 元字符•.:匹配任意字符(除了换行符)。

•^:匹配字符串的开始。

•$:匹配字符串的结束。

•*:匹配前一个字符0次或多次。

•+:匹配前一个字符1次或多次。

•?:匹配前一个字符0次或1次。

•|:或,匹配两个任一之一。

•( ):分组,将括号内的内容视为一个整体。

3. 字符类字符类用于匹配一个字符的集合。

•[abc]:匹配字符a、b或c中的任意一个。

•[^abc]:匹配除了a、b、c之外的任意字符。

•[a-z]:匹配任意小写字母。

•[A-Z]:匹配任意大写字母。

•[0-9]:匹配任意数字。

4. 预定义字符类预定义字符类是一些常用的字符类的缩写。

•\d:匹配任意数字,相当于[0-9]。

•\D:匹配任意非数字字符,相当于[^0-9]。

•\w:匹配任意单词字符(字母、数字、下划线),相当于[a-zA-Z0-9_]。

•\W:匹配任意非单词字符,相当于[^a-zA-Z0-9_]。

•\s:匹配任意空白字符(空格、制表符、换行符等)。

•\S:匹配任意非空白字符。

5. 量词量词用于指定匹配的次数。

•*:匹配前一个字符0次或多次。

•+:匹配前一个字符1次或多次。

•?:匹配前一个字符0次或1次。

•{n}:匹配前一个字符n次。

•{n,}:匹配前一个字符至少n次。

js正则表达式

js正则表达式
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup=”value=”/blog/value.replace(/["^u4E00-u9FA5]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,”))”
正则如下:/\d+$/g统一空格个数
来源:正则匹配空格的问题
字符串内字符键有空格,但是空格的数量可能不一致,通过正则将空格的个数统一变为一个。
例如:蓝 色 理 想
变成:蓝 色 理 想
aobert的正则:
<script type="text/javascript"> var str="蓝 色 理 想" var reg=/\s+/g str = str.replace(reg," ") document.write(str) </script>判断字符串是不是由数字组成
来源:想问一下关于电话号码的正则判断
:求一个验证电话号码的JS正则
/^\d{3,4}-\d{7,8}(-\d{3,4})?$/区号必填为3-4位的数字,区号之后用“-”与电话号码连接
^\d{3,4}-电话号码为7-8位的数字
\d{7,8}分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接
匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

JS的常用正则表达式验证密码(转载自用)

JS的常用正则表达式验证密码(转载自用)

JS的常⽤正则表达式验证密码(转载⾃⽤) 1 JS的正则表达式23强:字母+数字+特殊字符&nbsp;4 &nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$5 &nbsp;&nbsp;&nbsp;6 &nbsp;&nbsp;&nbsp;&nbsp;7中:字母+数字,字母+特殊字符,数字+特殊字符8 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$910弱:纯数字,纯字母,纯特殊字符11 ^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$121314//校验是否全由数字组成1516function isDigit(s)17 {18var patrn=/^[0-9]{1,20}$/;19if (!patrn.exec(s)) return false20return true21 }2223//校验登录名:只能输⼊5-20个以字母开头、可带数字、“_”、“.”的字串24function isRegisterUserName(s)25 {26var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;27if (!patrn.exec(s)) return false28return true29 }3031function isRegisterUserName(s)32 {33var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;34if (!patrn.exec(s)) return false35return true36 }373839//校验⽤户姓名:只能输⼊1-30个以字母开头的字串40 Javascript代码41function isTrueName(s)42 {43var patrn=/^[a-zA-Z]{1,30}$/;44if (!patrn.exec(s)) return false45return true46 }47 }}4849//校验密码:只能输⼊6-20个字母、数字、下划线50function isPasswd(s)51 {52var patrn=/^(\w){6,20}$/;53if (!patrn.exec(s)) return false54return true55 }5657//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”58function isTel(s)59 {60//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;61var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;62if (!patrn.exec(s)) return false63return true64 }6566//校验⼿机号码:必须以数字开头,除数字外,可含有“-”67function isMobil(s)68 {69var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;70if (!patrn.exec(s)) return false71return true72 }7374//校验邮政编码75function isPostalCode(s)76 {77//var patrn=/^[a-zA-Z0-9]{3,12}$/;78var patrn=/^[a-zA-Z0-9 ]{3,12}$/;79if (!patrn.exec(s)) return false80return true81 }8283//校验搜索关键字84function isSearch(s)85 {86var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\]87 [\]\{\}:;'\,.<>?]{0,19}$/;88 if (!patrn.exec(s)) return false89 return true90 }9192 function isIP(s) //by zergling93 {94 var patrn=/^[0-9.]{1,20}$/;95 if (!patrn.exec(s)) return false96 return true97 }9899正则表达式100 ^\\d+$ //⾮负整数(正整数 + 0)101 ^[0-9]*[1-9][0-9]*$ //正整数102 ^((-\\d+)|(0+))$ //⾮正整数(负整数 + 0)103 ^-[0-9]*[1-9][0-9]*$ //负整数104 ^-?\\d+$ //整数105 ^\\d+( //⾮负浮点数(正浮点数 + 0)106 ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 107 //正浮点数108 ^((-\\d+( //⾮正浮点数(负浮点数 + 0)109 ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$110 //负浮点数111 ^(-?\\d+)( //浮点数112 ^[A-Za-z]+$ //由26个英⽂字母组成的字符串113 ^[A-Z]+$ //由26个英⽂字母的⼤写组成的字符串114 ^[a-z]+$ //由26个英⽂字母的⼩写组成的字符串115 ^[A-Za-z0-9]+$ //由数字和26个英⽂字母组成的字符串116 ^\\w+$ //由数字、26个英⽂字母或者下划线组成的字符串117 ^[\\w-]+( //email地址118 ^[a-zA-z]+://( //url119 ^[A-Za-z0-9_]*$120121匹配完整域名的正则表达式:122 [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?JS的正则表达式强:字母+数字+特殊字符&nbsp;&nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中:字母+数字,字母+特殊字符,数字+特殊字符&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$弱:纯数字,纯字母,纯特殊字符^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$//校验是否全由数字组成function isDigit(s){var patrn=/^[0-9]{1,20}$/;if (!patrn.exec(s)) return false return true}//校验登录名:只能输⼊5-20个以字母开头、可带数字、“_”、“.”的字串function isRegisterUserName(s){var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;if (!patrn.exec(s)) return false return true}function isRegisterUserName(s){var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;if (!patrn.exec(s)) return false return true}//校验⽤户姓名:只能输⼊1-30个以字母开头的字串Javascript代码function isTrueName(s){var patrn=/^[a-zA-Z]{1,30}$/;if (!patrn.exec(s)) return false return true}}}//校验密码:只能输⼊6-20个字母、数字、下划线function isPasswd(s){var patrn=/^(\w){6,20}$/;if (!patrn.exec(s)) return false return true}//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 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}//校验⼿机号码:必须以数字开头,除数字外,可含有“-” function isMobil(s){var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;if (!patrn.exec(s)) return false return true}//校验邮政编码function isPostalCode(s){//var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/;if (!patrn.exec(s)) return false return true}//校验搜索关键字function isSearch(s){var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/;if (!patrn.exec(s)) return false return true}function isIP(s) //by zergling{var patrn=/^[0-9.]{1,20}$/;if (!patrn.exec(s)) return false return true}正则表达式^\\d+$ //⾮负整数(正整数 + 0)^[0-9]*[1-9][0-9]*$ //正整数^((-\\d+)|(0+))$ //⾮正整数(负整数 + 0)^-[0-9]*[1-9][0-9]*$ //负整数^-?\\d+$ //整数^\\d+( //⾮负浮点数(正浮点数 + 0)^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //正浮点数^((-\\d+( //⾮正浮点数(负浮点数 + 0)^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$//负浮点数^(-?\\d+)( //浮点数^[A-Za-z]+$ //由26个英⽂字母组成的字符串^[A-Z]+$ //由26个英⽂字母的⼤写组成的字符串^[a-z]+$ //由26个英⽂字母的⼩写组成的字符串^[A-Za-z0-9]+$ //由数字和26个英⽂字母组成的字符串^\\w+$ //由数字、26个英⽂字母或者下划线组成的字符串^[\\w-]+( //email地址^[a-zA-z]+://( //url^[A-Za-z0-9_]*$匹配完整域名的正则表达式:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?。

JS正则表达式语法大全(非常详细)

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 编码定义正则表达式直接量。

1. var r = /\x61/;2. var s = "JavaScript";3. var a = s.match(s);由于字母 a 的 ASCII 编码为 97,被转换为⼗六进制数值后为 61,因此如果要匹配字符 a,就应该在前⾯添加“\x”前缀,以提⽰它为 ASCII 编码。

⽰例2除了⼗六进制外,还可以直接使⽤⼋进制数值表⽰字符。

JS常用正则表达式及验证时间的正则表达式

JS常用正则表达式及验证时间的正则表达式

JS常⽤正则表达式及验证时间的正则表达式转:/article/98069.htm1949-2100var reg=/^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})$/;if(!reg.test(year) ){alert("请输⼊符合规范的年份!");return false;}1.在input框中只能输⼊⾦额,其实就是只能输⼊最多有两位⼩数的数字 //第⼀种在input输⼊框限制<input type="text" maxlength="8" class="form-control" id="amount" style="margin-right: 2px;" value="" onChange="count();" onkeyup="if (this.value==this.value2) return; if (this.value.search(/^\d*(?:\.\d{0,2})?$/)==-1) this.value=(this.value2)?this.value2:'';elsethis.value2=this.value;">元//第⼆种对于表单动态增加的⽅式,只能在js⽅法中验证。

var amount=$("#amount").val();if (amount.search(/^\d*(?:\.\d{0,2})?$/)==-1) {alert("⾦额格式不对,最多有两位⼩数");return false;}2.验证邮箱格式var reg=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;var email=$("#email").val();if(!reg.test(email) ){alert("请输⼊符合规范的邮箱账号!");return false;}3.密码采⽤数字、字母、特殊字符且长度为8-20位function validatePwd(str) {if (/^.*?[\d]+.*$/.test(str) && /^.*?[A-Za-z]/.test(str)&& /^.*?[~/`!@#$%^&*()_+|{}?;:><\-\]\\[\/].*$/.test(str) && /^.{8,20}$/.test(str)) {return true;}return false;}4.验证电话号码/*** 验证电话号码* @param phoneValue 要验证的电话号码* @returns 匹配返回true 不匹配返回false*/function validatePhone(phoneValue) {phoneValue = valueTrim(phoneValue);var reg = /^[1][0-9]{10}$/;return reg.test(phoneValue);}5.判断是否是汉字/*** 判断是否是汉字** @param charValue* 要验证的数据* @returns 匹配返回true 不匹配返回false*/function isCharacter(charValue) {var reg = /^[\u4e00-\u9fa5]{0,}$/;return reg.test(charValue);}6.是否为字母:true:是,false:不是function isChar(charValue){var charPattern=/^[a-zA-Z]*$/; //是否为字母result=charPattern.test(charValue);return result;}7.判断是否为数字function isNum(numValue){var numPattern=/^\d*$/; //数字的正则表达式result=numPattern.test(numValue);return result;}8.整数的正则表达式function isInt(intValue){var intPattern=/^0$|^[1-9]\d*$/; //整数的正则表达式result=intPattern.test(intValue);return result;}9.是否为字母和数字function isCharNum(flagValue){var flagPattern=/^[a-zA-Z0-9]*$/; //是否为字母和数字result=flagPattern.test(flagValue);return result;}10.检验18位⾝份证号码/*** 检验18位⾝份证号码(15位号码可以只检测⽣⽇是否正确即可,⾃⾏解决)** @param idCardValue* 18位⾝份证号* @returns 匹配返回true 不匹配返回false*/function idCardVildate(cid) {var arrExp = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];// 加权因⼦var arrValid = [ 1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2 ];// 校验码var reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; if (reg.test(cid)) {var sum = 0, idx;for (var i = 0; i < cid.length - 1; i++) {// 对前17位数字与权值乘积求和sum += parseInt(cid.substr(i, 1), 10) * arrExp[i];}// 计算模(固定算法)idx = sum % 11;// 检验第18为是否与校验码相等return arrValid[idx] == cid.substr(17, 1).toUpperCase();} else {return false;}}11.验证15位数⾝份证号码中的⽣⽇是否是有效⽣⽇function isValidityBrithBy15IdCard(idCard15) {var year = idCard15.substring(6, 8);var month = idCard15.substring(8, 10);var day = idCard15.substring(10, 12);var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));// 对于⽼⾝份证中的你年龄则不需考虑千年⾍问题⽽使⽤getYear()⽅法if (temp_date.getYear() != parseFloat(year)|| temp_date.getMonth() != parseFloat(month) - 1|| temp_date.getDate() != parseFloat(day)) {return false;} else {return true;}}12.验证18位数⾝份证号码中的⽣⽇是否是有效⽣⽇function isValidityBrithBy18IdCard(idCard18) {var year = idCard18.substring(6, 10);var month = idCard18.substring(10, 12);var day = idCard18.substring(12, 14);var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));// 这⾥⽤getFullYear()获取年份,避免千年⾍问题if (temp_date.getFullYear() != parseFloat(year)|| temp_date.getMonth() != parseFloat(month) - 1|| temp_date.getDate() != parseFloat(day)) {return false;} else {return true;}}PS:js验证时间正则表达式验证时间格式为:2012-01-31 09:00:22var reDateTime = /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/; var isDateTime = reDateTime.test('2012-01-31 09:00:22');。

JS常用正则表达式总结【经典】

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){reg=eval("/^\\d{"+n+"}$/");errorInfo=text+" "+value+" 只能是"+n+"位数字,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证有两位⼩数的正实数function validate_decimal_two(text,value){reg=/^([1-9](\d+)?|0)(.[0-9]{2})?$/;errorInfo=text+" "+value+" 只能是保留2位⼩数的正数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证⾮零的正整数function validate_number_positive(text,value){reg=/^\+?[1-9][0-9]*$/;errorInfo=text+" "+value+" 只能是⾮0的正整数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证⾮零的负整数function validate_number_negative(text,value){reg=/^[-][1-9][0-9]*$/;errorInfo=text+" "+value+" 只能是⾮0的负整数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证⾮负整数,可以为0function validate_positive_haszero(text,value){reg=/^[1-9](\d+)?|0$/;errorInfo=text+" "+value+" 只能是是0或正整数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证⾮正整数,可以为0function validate_negative_haszero(text,value){reg=/^\-[1-9](\d+)?|0$/;errorInfo=text+" "+value+" 只能是是0或负整数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证⾮负浮点数(正浮点数 + 0)function validate_float_notnegative(text,value){reg=/^([1-9](\d+)?|0)(\.\d+)|0$/;errorInfo=text+" "+value+" 只能是是0或正浮点数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证正浮点数function validate_float_positive(text,value){reg=/^([1-9](\d+)?|0)(\.\d+)$/;errorInfo=text+" "+value+" 只能是正浮点数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//⾮正浮点数(负浮点数 + 0)function validate_float_notpositive(text,value){reg=/^\-([1-9](\d+)?|0)(\.\d+)|0$/;errorInfo=text+" "+value+" 只能是是0或者负浮点数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证负浮点数function validate_float_negative(text,value){reg=/^\-([1-9](\d+)?|0)(\.\d+)$/;errorInfo=text+" "+value+" 只能是负浮点数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证正浮点数多少位⼩数function validate_float_posbit(text,value,n){reg=eval("/^(\\d+)(\\.\\d{"+n+"})$/");errorInfo=text+" "+value+" 只能是"+n+"位正浮点数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//验证负浮点数多少位⼩数function validate_float_negbit(text,value,n){reg=eval("/^(-?\\d+)(\\.\\d{"+n+"})$/");errorInfo=text+" "+value+" 只能是"+n+"位负浮点数,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//校验⽂本是否为空function checknull(text,value){if(value=="" || typeof(value)=='undefined'){errorInfo=text+" "+value+" 不能为空,请重新输⼊!";returnInfo(errorInfo);}}//验证由26个英⽂字母组成的字符串function validate_string_letter(text,value){reg=/^[A-Za-z]+$/;errorInfo=text+" "+value+" 只能是26位不区分⼤⼩写的英⽂字母组成,请核实重新输⼊"; verifyByReg(value,reg,errorInfo);}//验证由26个英⽂字母的⼤写组成的字符串function validate_string_bigletter(text,value){reg=/^[A-Z]+$/;errorInfo=text+" "+value+" 只能是26位⼤写的英⽂字母组成,请核实重新输⼊"; verifyByReg(value,reg,errorInfo);}//验证由26个英⽂字母的⼩写组成的字符串function validate_string_smallletter(text,value){reg=/^[a-z]+$/;errorInfo=text+" "+value+" 只能是26位⼩写的英⽂字母组成,请核实重新输⼊"; verifyByReg(value,reg,errorInfo);}//验证由数字和26个英⽂字母组成的字符串function validate_string_number(text,value){reg=/^[A-Za-z0-9]+$/;errorInfo=text+" "+value+" 只能是数字和26个英⽂字母组成,请核实重新输⼊"; verifyByReg(value,reg,errorInfo);}//验证由数字、26个英⽂字母或者下划线组成的字符串function validate_string_numberandunderline(text,value){reg=/^\w+$/;errorInfo=text+" "+value+" 只能是数字、26个英⽂字母或者下划线组成,请核实重新输⼊"; verifyByReg(value,reg,errorInfo);}//验证邮箱function validate_email(value){reg=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;errorInfo='邮箱 '+value+" ⽆效,请重新输⼊";verifyByReg(value,reg,errorInfo);}//验证时如果选择默认调⽤此⽅法⾦额类型,可以是正整数或保留4位有效数字的正整数/**有问题function validate_money_default(text,value){var reg=/^\d+(\.\d{4})?$/;var errorInfo=text+" "+value+" 只能是正整数或保留4位有效数字,请核实重新输⼊"; verifyByReg(value,reg,errorInfo);}**///验证输⼊的只能是中⽂function validate_chinese(text,value){reg=/^[\u4e00-\u9fa5]+$/;errorInfo=text+" "+value+" 只能是中⽂字符,请重新输⼊";verifyByReg(value,reg,errorInfo);}//验证输⼊的只能是n位的中⽂function validate_bitchinese(text,value,bit){reg=eval("/^[\\u4e00-\\u9fa5]{"+bit+"}$/");alert(reg);errorInfo=text+" "+value+" 只能是"+bit+"位中⽂字符,请重新输⼊";verifyByReg(value,reg,errorInfo);}//跟最⼤的值⽐较,此⽅法是看数字是否超出系统的上限function thanMax(text,number,max){if(number>max){errorInfo=text+" "+number+" 不能⼤于"+max+",请重新输⼊";returnInfo(errorInfo);}}//跟最⼩的值⽐较,此⽅法是看数字是否低于系统的下限function thinMin(text,number,min){if(number<min){errorInfo=text +" "+number+" 不能⼩于"+min+",请重新输⼊";returnInfo(errorInfo);}}//输⼊⽂本的字符串是否在系统的指定长度内function isLimit(text,value,length){var arr=value.split("");if(arr.length>length){errorInfo=text +" "+value+" 字符过长,请输⼊最多"+length+"位字符";returnInfo(errorInfo);}}//邮政编码的验证function validate_zipcode(value){reg=/[1-9]\d{5}(?!\d)/;errorInfo='邮政编码 '+value+" 有误,请核实重新输⼊";verifyByReg(value,reg,errorInfo);}//对数值类型的数据进⾏简单的验证和转换,因为在设置的时候没有传⼊这个参数的话就会出现js代码错误,所以应该对数值型的数据进⾏转换//⾮空字符的判定function getZeroByNull(text,value){errorInfo=text+" "+value+" 不能为空,请核实重新输⼊";if(value==null||value==''||value=='undefined'){returnInfo(errorInfo);}}//⾝份证验证,分为了两种,15位和18位function validate_IdCard(value){var size=value.split("");if(size.length==15){reg=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15位⾝份证验证errorInfo='位⾝份证号码 '+value+" 有误,请核实重新输⼊";}else if(size.length==18){reg=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/;//18位⾝份证验证errorInfo='位⾝份证号码 '+value+" 有误,请核实重新输⼊";}else{errorInfo="请输⼊合法的⾝份证号码!";returnInfo(errorInfo);}verifyByReg(value,reg,errorInfo);}//每个验证都需要调⽤此⽅法function verifyByReg(value,reg,errorInfo){if(value!=''&&reg!=''){var regExp = new RegExp(reg);if(!regExp.test(value)){alert(errorInfo);throw errorInfo;}}}//不进过正则表达式验证,只需要返回信息,适合内部调⽤此⽅法function returnInfo(message){alert(message);throw message;}//许可证号⽣产企业的格式:QS 1234 2346 3456 其中空格可有可⽆///经营企业许可证的格式为: 湘010249 但是中国的省会简称可能会有三个字的,所以中⽂可以定义为1-3个function validate_license(value,type){if(type==1){reg=/^[a-zA-Z]{2}[ ]?(\d{4}[ ]?\d{4}[ ]?\d{4})$/;//⽣产企业许可证号errorInfo="⽣产许可证号 "+value+" 有误,请核实重新输⼊!";}else if(type==2){reg=/^[\u4e00-\u9fa5]{1,3}\d{6}$/;errorInfo="经营许可证号 "+value+" 有误,请核实重新输⼊!";}verifyByReg(value,reg,errorInfo);}//传真可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等function validate_fax(value){reg=/^([+]{0,1})?\d{1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;errorInfo="传真 "+value+" 有误,请重新输⼊!";verifyByReg(value,reg,errorInfo);}//电话号码可以输⼊:电话或者⼿机其中⼿机号码可以是(+86)、(86)+号码,也可以是号码电话的号码可以是区号+号码区号-号码号码function validate_tel(value){reg=/(^(0\d{2,3}([-|+])?)?\d{7}$)|(^(\d{3,4}([-|+])?)?\d{7,8}$)|(^([+]?(86)?[+]?)1[3-9]\d{9}$)/;errorInfo='电话号码 '+value+" 有误,请核实重新输⼊!";verifyByReg(value,reg,errorInfo);}//⽇:⼤于0⼩于等于31的正整数function validate_day(value){reg=/(^[0]?[1-9]$)|(^[1-2]\d$)|(^[3][0-1]$)/;errorInfo='⽇期 '+value+" 有误,请核实重新输⼊!";verifyByReg(value,reg,errorInfo);}//⽉:合法⽉份function validate_month(value){reg=/(^[0]?[1-9]$)|(^[1][0-2]$)/;errorInfo='⽉份 '+value+" 有误,请核实重新输⼊!";verifyByReg(value,reg,errorInfo);}//年:合法年份在这⾥合法的年份为公元1000年⾄公元2999年function validate_year(value){reg=/^[1-2]\d{3}$/;errorInfo='年份 '+value+" 有误,请核实重新输⼊!";verifyByReg(value,reg,errorInfo);}//百分⽐:合法百分⽐(0-100之前的数字)function validate_percentage(text,value){reg=/(^[1-9](\d)?(\.\d+)?$)|(^0(\.\d+)?$)|(^100$)/;errorInfo=text +" "+value+" 有误,请输⼊0到100的数字!";verifyByReg(value,reg,errorInfo);}//系数:⼩于等于1的正数在这⾥系数的⼩数点后⾯也是2位function validate_modulus(text,value){reg=/^[0](\.\d{2})$|^[1](\.[0]{2})?$/;errorInfo=text+" "+value+" 有误,请输⼊⼩于0到1的数字!";verifyByReg(value,reg,errorInfo);}//验证⾮负的正数,包含了正整数和正浮点数function validate_posnumhaszero(text,value){checknull(text,value);reg=/^[1-9](\d+)?(\.\d+)?$|^0(\.\d+)?$/;errorInfo=text+" "+value+" 有误,请输⼊⼤于或等于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证⾮正的负数,包含了负整数和负浮点数function validate_negnumhaszero(text,value){checknull(text,value);reg=/^[-][1-9](\d+)?(\.\d+)?$|^[-]0(\.\d+)?$/;errorInfo=text+" "+value+" 有误,请输⼊⼩于或等于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证正数,包含了正整数和正浮点数function validate_posnum(text,value){checknull(text,value);reg=/^[1-9](\d+)?(\.\d+)?$|^0(\.\d+)$/;errorInfo=text+" "+value+" 有误,请输⼊⼤于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证负数,包含了负整数和负浮点数function validate_negnum(text,value){checknull(text,value);reg=/^[-][1-9](\d+)?(\.\d+)?$|^[-]0(\.\d+)$/;errorInfo=text+" "+value+" 有误,请输⼊⼩于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证数,包括所有的数值,正数、负数、正浮点数、负浮点数function validate_allnum(text,value){checknull(text,value);reg=/^[-|+]?[1-9](\d+)?(\.\d+)?$|^[-|+]?0(\.\d+)?$/;errorInfo=text+" "+value+" 有误,请输⼊数字!";verifyByReg(value,reg,errorInfo);}PS:这⾥再为⼤家提供2款⾮常⽅便的正则表达式⼯具供⼤家参考使⽤:更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家JavaScript程序设计有所帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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" ,并且该串前后可以有一个或多个空格./[^"] * / //匹配零个或多个非引号字符.正则表达式的复制字符字符含义__________________________________________________________________{n, m} 匹配前一项至少n次,但是不能超过m次{n, } 匹配前一项n次,或者多次{n} 匹配前一项恰好n次? 匹配前一项0次或1次,也就是说前一项是可选的. 等价于{0, 1}* 匹配前一项0次或多次.等价于{0,}___________________________________________________________________4.选择,分组和引用正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串"ab",或者是字符串"cd",又或者"ef". /\d{3}|[a-z]{4}/ 匹配的是要么是一个三位数,要么是四个小写字母.在正则表达式中括号具有几种作用.它的主要作用是把单独的项目分组成子表达式,以便可以像处理一个独立的单元那种用*、+或? 来处理那些项目.例如: /java(script) ?/ 匹配的是字符串"java",其后既可以有"script",也可以没有. / (ab|cd) + |ef) / 匹配的既可以是字符串"ef",也可以是字符串"ab" 或者"cd" 的一次或多次重复.在正则表达式中,括号的第二个用途是在完整的模式中定义子模式。

当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配的部分.例如,假定我们正在检索的模式是一个或多个字母后面跟随一位或多位数字,那么我们可以使用模式/ [a-z] + \ d+/.但是由于假定我们真正关心的是每个匹配尾部的数字,那么如果我们将模式的数字部分放在括号中(/ [a-z] + (\d+)/) ,我们就可以从所检索到的任何匹配中抽取数字了,之后我们会对此进行解析的.代括号的子表达式的另一个用途是,允许我们在同一正则表达式的后面引用前面的子表达式.这是通过在字符串\ 后加一位或多位数字来实现的.数字指的是代括号的子表达式在正则表达式中的位置.例如: \1 引用的是第一个代括号的子表达式. \3 引用的是第三个代括号的子表达式.注意,由于子表达式可以嵌套在其它子表达式中,所以它的位置是被计数的左括号的位置.例如:在下面的正则表达式被指定为\2:/([Jj]ava([Ss]cript)) \sis \s (fun\w*) /对正则表达式中前一子表达式的引用所指定的并不是那个子表达式的模式,而是与那个模式相匹配的文本.这样,引用就不只是帮助你输入正则表达式的重复部分的快捷方式了,它还实施了一条规约,那就是一个字符串各个分离的部分包含的是完全相同的字符.例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字符.但是,它要求开始和结束的引号匹配(例如两个都是双引号或者都是单引号): /[' "] [^ ' "]*[' "]/如果要求开始和结束的引号匹配,我们可以使用如下的引用:/( [' "] ) [^ ' "] * \1/\1匹配的是第一个代括号的子表达式所匹配的模式.在这个例子中,它实施了一种规约,那就是开始的引号必须和结束的引号相匹配.注意,如果反斜杠后跟随的数字比代括号的子表达式数多,那么它就会被解析为一个十进制的转义序列,而不是一个引用.你可以坚持使用完整的三个字符来表示转义序列,这们就可以避免混淆了.例如,使用\044,而不是\44.下面是正则表达式的选择、分组和引用字符:字符含义____________________________________________________________________| 选择.匹配的要么是该符号左边的子表达式,要么它右边的子表达式(...) 分组.将几个项目分为一个单元.这个单元可由*、+、?和|等符号使用,而且还可以记住和这个组匹配的字符以供此后引用使用\n 和第n 个分组所匹配的字符相匹配.分组是括号中的子表达式(可能是嵌套的).分组号是从左到右计数的左括号数____________________________________________________________________5.指定匹配的位置我们已经看到了,一个正则表达式中的许多元素才能够匹配字符串的一个字符.例如: \s 匹配的只是一个空白符.还有一些正则表达式的元素匹配的是字符之间宽度为0的空间,而不是实际的字符例如: \b 匹配的是一个词语的边界,也就是处于一个/w字字符和一个\w非字字符之间的边界.像\b 这样的字符并不指定任何一个匹配了的字符串中的字符,它们指定的是匹配所发生的合法位置.有时我们称这些元素为正则表达式的锚.因为它们将模式定位在检索字符串中的一个特定位置.最常用的锚元素是^, 它使模式依赖于字符串的开头,而锚元素$则使模式定位在字符串的末尾.例如:要匹配词"javascript" ,我们可以使用正则表达式/^ javascript $/. 如果我们想检索"java" 这个词自身(不像在"javascript" 中那样作为前缀),那么我们可以使用模式/\s java \s /, 它要求在词语java之前和之后都有空格.但是这样作有两个问题.第一: 如果"java" 出现在一个字符的开头或者是结尾.该模式就不会与之匹配,除非在开头和结尾处有一个空格. 第二: 当这个模式找到一个与之匹配的字符时,它返回的匹配的字符串前端和后端都有空格,这并不是我们想要的.因此,我们使用词语的边界\b 来代替真正的空格符\s 进行匹配. 结果表达式是/\b java \b/.下面是正则表达式的锚字符:字符含义____________________________________________________________________^ 匹配的是字符的开头,在多行检索中,匹配的是一行的开头$ 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾\b 匹配的是一个词语的边界.简而言之就是位于字符\w 和\w之间的位置(注意:[\b]匹配的是退格符) \B 匹配的是非词语的边界的字符_____________________________________________________________________6.属性有关正则表达式的语法还有最后一个元素,那就是正则表达式的属性,它说明的是高级模式匹配的规则.和其它正则表达式语法不同,属性是在/ 符号之外说明的.即它们不出现在两个斜杠之间,而是位于第二个斜杠之后.javascript 1.2支持两个属性.属性i 说明模式匹配应该是大小写不敏感的.属性g 说明模式匹配应该是全局的.也就是说,应该找出被检索的字符串中所有的匹配.这两种属性联合起来就可以执行一个全局的,大小写不敏感的匹配.例如: 要执行一个大小不敏感的检索以找到词语"java" (或者是"java" 、"JAVA"等) 的第一个具体值,我们可以使用大小不敏感的正则表达式/\b java\b/i .如果要在一个字符串中找到"java" 所有的具体值,我们还可以添加属性g, 即/\b java \b/gi .JS正则表达式大全【3】以下是正则表达式的属性:字符含义_________________________________________i 执行大小写不敏感的匹配g 执行一个全局的匹配,简而言之,就是找到所有的匹配,而不是在找到第一个之后就停止了_________________________________________除属性g 和i 之外,正则表达式就没有其它像属性一样的特性了.如果将构造函数RegExp 的静态属性multiline 设置为true ,那么模式匹配将以多行的模式进行.在这种模式下,锚字符^ 和$匹配的不只是检索字符串的开头和结尾,还匹配检索字符串内部的一行的开头和结尾.例如: 模式/Java$/ 匹配的是"Java",但是并不匹配"Java\nis fun" .如果我们设置了multiline 属性,那么后者也将被匹配:RegExp.multiline = true;在JAVASCRIPT里面判断一个字符串是否是电子邮件的格式:if(formname.email.value!=formname.email.value.match(/^\w +[@]\w +[.][\w.] +$/)){alert("您的电子邮件格式错误!");formname.email.focus();return false;}[RED]function dateVerify(date){var reg = /^(\d{4})(-)(\d{2})\2(\d{2})$/;var r = date.match(reg);if(r==null) return false;var d= new Date(r[1], r[3]-1,r[4]);var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);return newStr==date;}[/RED]javascript的17种正则表达式"^\\d+$"//非负整数(正整数+ 0)"^[0-9]*[1-9][0-9]*$"//正整数"^((-\\d+)|(0+))$"//非正整数(负整数+ 0)"^-[0-9]*[1-9][0-9]*$"//负整数"^-?\\d+$"//整数"^\\d+(\\.\\d+)?$"//非负浮点数(正浮点数+ 0)"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"//非正浮点数(负浮点数+ 0)"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//负浮点数"^(-?\\d+)(\\.\\d+)?$"//浮点数"^[A-Za-z]+$"//由26个英文字母组成的字符串"^[A-Z]+$"//由26个英文字母的大写组成的字符串"^[a-z]+$"//由26个英文字母的小写组成的字符串"^[A-Za-z0-9]+$"//由数字和26个英文字母组成的字符串"^\\w+$"//由数字、26个英文字母或者下划线组成的字符串"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"//email地址"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"//urlJavaScript中的正则表达式(2)正则表达式对象的属性及方法预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext, rightContext和$1到$9。

相关文档
最新文档