JS的正则表达式
JS正则表达式大全

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正则表达式

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) { varpatrn=/^[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]//校验手机号码:必须以数字开头,除数字外,可含有“-”[code] function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]//校验邮政编码[code] function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; varpatrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } [/code]//校验搜索关键字[code] function isSearch(s) { varpatrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{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 } [/code]正则表达式[code] "^\\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*)?$"//url"^[A-Za-z0-9_]*$" [/code]正则表达式使用详解简介简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。
js 正则长度表达式

js 正则长度表达式JS正则表达式中的长度限制是指在使用正则表达式时,可以对字符串的长度进行限制和匹配。
在JS中,可以使用正则表达式来匹配字符串的长度,以满足特定的需求。
JS中的正则表达式长度限制可以通过使用特定的元字符和量词来实现。
在正则表达式中,可以使用元字符“^”和“$”来分别表示字符串的开始和结束,通过将它们与量词结合使用,可以限制字符串的长度。
例如,如果要匹配长度为3的字符串,可以使用正则表达式“^.{3}$”。
其中,“^”表示字符串的开始,“.{3}”表示匹配任意三个字符,“$”表示字符串的结束。
只有满足这个正则表达式的字符串才会被匹配。
还可以使用量词中的“{n,m}”来限制字符串的长度范围。
例如,如果要匹配长度为3到5的字符串,可以使用正则表达式“^.{3,5}$”。
其中,“{3,5}”表示匹配长度为3到5之间的字符。
除了限制字符串的长度外,正则表达式还可以匹配特定长度的重复字符。
例如,如果要匹配长度为4的重复字符,可以使用正则表达式“^(.)\1{3}$”。
其中,“(.)”表示匹配任意字符并将其捕获,“\1{3}”表示匹配与捕获的字符相同的字符,并重复3次。
需要注意的是,在使用正则表达式时,还可以结合其他的元字符和量词来进行更复杂的匹配。
例如,可以使用“\d”来匹配数字字符,使用“\w”来匹配字母、数字和下划线字符。
在实际应用中,可以根据具体的需求来使用正则表达式的长度限制。
例如,在验证用户输入时,可以使用正则表达式限制密码的长度,以确保密码的安全性。
又或者,在处理文本时,可以使用正则表达式限制字符串的长度,以满足特定的格式要求。
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 正则的方法JavaScript 中的正则表达式(RegExp)是一种强大的工具,用于在字符串中执行复杂的搜索和替换操作。
以下是一些常用的JavaScript 正则表达式方法:1.test(): 这个方法检查一个字符串是否匹配某个模式。
它会返回一个布尔值,如果字符串中存在匹配的文本,则返回true,否则返回false。
javascriptlet regex = /hello/;console.log(regex.test('hello world')); // 输出: trueconsole.log(regex.test('goodbye world')); // 输出: false2.exec(): 这个方法在一个字符串中执行正则表达式搜索,并返回一个数组。
如果没有找到匹配的文本,则返回null。
javascriptlet regex = /hello/;let result = regex.exec('hello world');console.log(result); // 输出: ["hello", index: 0, input: "helloworld", groups: undefined]3.match(): 这个方法在一个字符串中执行正则表达式搜索,并返回一个数组。
如果没有找到匹配的文本,则返回null。
与exec()方法不同,match()方法只能用于全局搜索模式(g 标志)。
javascriptlet regex = /hello/g;let result = 'hello world hello everyone'.match(regex);console.log(result); // 输出: ["hello", "hello"]4.replace(): 这个方法在一个字符串中查找与正则表达式模式匹配的文本,并用替换文本替换它。
js正则提取指定字符之间的字符

一、介绍正则表达式以及JavaScript中的正则表达式在进行js正则提取指定字符之间的字符之前,首先需要对正则表达式以及JavaScript中的正则表达式进行介绍。
正则表达式是用于匹配字符串的一种模式,在各种编程语言中都有广泛的应用。
JavaScript作为一种强大的脚本语言,也内置了对正则表达式的支持,通过使用正则表达式,可以对字符串进行复杂的匹配和提取操作。
二、JavaScript中的正则表达式语法JavaScript中的正则表达式可以使用两种方式来创建,一种是使用RegExp对象,另一种是使用字面量。
正则表达式的语法包括普通字符(例如字母、数字等)、元字符(用于描述一个或多个字符的模式)、修饰符(用于指定匹配模式的标志)。
其中,正则表达式的元字符包括了一些特殊的字符,比如“^”表示匹配输入的开始,“$”表示匹配输入的结束等等。
三、实现JavaScript正则提取指定字符之间的字符为了实现JavaScript正则表达式提取指定字符之间的字符,首先需要构建一个合适的正则表达式模式。
正则表达式提供了多种元字符和修饰符,可以通过组合这些元素来满足不同的提取需求。
在提取指定字符之间的字符的情况下,通常会使用“贪婪匹配”或“非贪婪匹配”,以及使用“分组”的方式来提取需要的部分。
四、提取指定字符之间的字符的常用正则表达式模式通过构建合适的正则表达式模式,可以实现提取指定字符之间的字符。
以下列举了一些常用的正则表达式模式:1. 提取括号内的内容通过使用“\((.*?)\)”的正则表达式模式,可以提取字符串中括号内的内容。
2. 提取引号内的内容通过使用“\"(.*?)\"”的正则表达式模式,可以提取字符串中引号内的内容。
3. 提取特定标签之间的内容通过使用“<tag>(.*?)<\/tag>”的正则表达式模式,可以提取HTML标签中特定标签之间的内容。
五、JavaScript中的正则提取方法在构建好合适的正则表达式模式之后,可以使用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表示任意一个非空白字符。
5. 匹配HTML标签/<\/?[^>]+>/gi使用说明: \?表示出现零次或一次,[^>]表示不是大于号的字符,+表示一个或多个,/i使匹配忽略大小写,/g表示全局匹配。
6. 匹配中文字符/[\u4e00-\u9fa5]/使用说明: [\u4e00-\u9fa5]表示从\u4e00到\u9fa5这个区间的所有字符。
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 密码检查正则表达式
下面是一个简单的 JavaScript 密码检查正则表达式:
```javascript
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/
```
这个正则表达式的含义是:
1. `^` 表示字符串的开头
2. `(?=.*[a-z])` 表示字符串中必须包含至少一个小写字母
3. `(?=.*[A-Z])` 表示字符串中必须包含至少一个大写字母
4. `(?=.*\d)` 表示字符串中必须包含至少一个数字
5. `[a-zA-Z\d]{8,}` 表示字符串中必须包含至少 8 个字符,可以是大小写字母或数字
6. `$` 表示字符串的结尾
这个正则表达式要求密码必须包含至少一个小写字母、一个大写字母和一个数字,并且长度不能少于 8 个字符。
你可以根据具体要求进行修改。
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]*))$18 负浮点数:^-([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]*)))$19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$⼆、校验字符的表达式1 汉字:^[\u4e00-\u9fa5]{0,}$2 英⽂和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$3 长度为3-20的所有字符:^.{3,20}$4 由26个英⽂字母组成的字符串:^[A-Za-z]+$5 由26个⼤写英⽂字母组成的字符串:^[A-Z]+$6 由26个⼩写英⽂字母组成的字符串:^[a-z]+$7 由数字和26个英⽂字母组成的字符串:^[A-Za-z0-9]+$8 由数字、26个英⽂字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$9 中⽂、英⽂、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$10 中⽂、英⽂、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$11 可以输⼊含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+12 禁⽌输⼊含有~的字符:[^~\x22]+三、特殊需求表达式1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$4 ⼿机号码:^(13[0-9]|14[0-9]|15[0-9]|166|17[0-9]|18[0-9]|19[8|9])\d{8}$4.1 var re = /^(1[3-9][0-9]{9})$/;//如:if (re.test(vmData.PHONE) === false) {alert("⼿机号格式不正确");return;}5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$6 国内电话号码(0511-*******、021-********):\d{3}-\d{8}|\d{4}-\d{7}7 18位⾝份证号码(数字、字母x结尾):^((\d{18})|([0-9x]{18})|([0-9X]{18}))$8 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$9 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$10 强密码(必须包含⼤⼩写字母和数字的组合,不能使⽤特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$11 ⽇期格式:^\d{4}-\d{1,2}-\d{1,2}12 ⼀年的12个⽉(01~09和1~12):^(0?[1-9]|1[0-2])$13 ⼀个⽉的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$14 钱的输⼊格式:15 1.有四种钱的表⽰形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$16 2.这表⽰任意⼀个不以0开头的数字,但是,这也意味着⼀个字符"0"不通过,所以我们采⽤下⾯的形式:^(0|[1-9][0-9]*)$17 3.⼀个0或者⼀个不以0开头的数字.我们还可以允许开头有⼀个负号:^(0|-?[1-9][0-9]*)$18 4.这表⽰⼀个0或者⼀个可能为负的开头不为0的数字.让⽤户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下⾯我们要加的是说明可能的⼩数部分:^[0-9]+(.[0-9]+)?$19 5.必须说明的是,⼩数点后⾯⾄少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$20 6.这样我们规定⼩数点后⾯必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$21 7.这样就允许⽤户只写⼀位⼩数.下⾯我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$22 8.1到3个数字,后⾯跟着任意个逗号+3个数字,逗号成为可选,⽽不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$23 备注:这就是最终结果了,别忘了"+"可以⽤"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在⽤函数时去掉去掉那个反斜杠,⼀般的错误都在这⾥24 xml⽂件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$25 中⽂字符的正则表达式:[\u4e00-\u9fa5]26 双字节字符:[^\x00-\xff] (包括汉字在内,可以⽤来计算字符串的长度(⼀个双字节字符长度计2,ASCII字符计1))27 空⽩⾏的正则表达式:\n\s*\r (可以⽤来删除空⽩⾏)28 HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (⽹上流传的版本太糟糕,上⾯这个也仅仅能部分,对于复杂的嵌套标记依旧⽆能为⼒)29 ⾸尾空⽩字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以⽤来删除⾏⾸⾏尾的空⽩字符(包括空格、制表符、换页符等等),⾮常有⽤的表达式)30 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)31 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)32 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有⽤)33 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)) (由@飞龙三少提供,感谢共享)转载⾃:作者:出处:本⽂版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在⽂章页⾯明显位置给出原⽂连接,否则保留追究法律责任的权利。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。 例如,/jim {2,6}/ 上述正则表达式规定字符m可以在匹配对象中连续 出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字 符串相匹配。 在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重 要的元字符的使用方式。 代码 1. \s:用于匹配单个空格符,包括tab键和换行符; 2. \S:用于匹配除单个空格符之外的所有字符; 3. \d:用于匹配从0到9的数字; 4. \w:用于匹配字母,数字或下划线字符; 5. \W:用于匹配所有与\w不匹配的字符; 6. . :用于匹配除换行符之外的所有字符。 (说明:我们可以把\s和\S以及\w和\W看作互为逆运算) 下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。 /\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个空格字 符。 /\d000/ 如果我们手中有一份复杂的财务报表,那么我们可以通过上 述正则表达式轻而易举的查找到所有总额达千元的款项。 除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为 独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的 出现位置。 较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。 代码 1. “^”定位符规定匹配模式必须出现在目标字符串的开头 2. “$”定位符规定匹配模式必须出现在目标对象的结尾 3. “\b”定位符规定匹配模式必须出现在目标字符串的开头或结 尾的两个边界之一
正则表达式使用详解
简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工 具。其作用如下: 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在 该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数 据有效性验证。 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可 以全部将其删除,或者替换为别的文字。 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字 段中查找特定文字。 基本语法 在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一 下正则表达式的语法格式。 正则表达式的形式一般如下: /love/ 其中位于“/”定界符之间的部分就是将要在目标对象中进行 匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符 之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供
7. "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][09]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" 8. //正浮点数 9. "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点 数(负浮点数 + 0) 10. "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][09]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" 11. //负浮点数 12. "^(-?\\d+)(\\.\\d+)?$" //浮点数 13. "^[A-Za-z]+$" //由26个英文字母组成的字符串 14. "^[A-Z]+$" //由26个英文字母的大写组成的字符串 15. "^[a-z]+$" //由26个英文字母的小写组成的字符串 16. "^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字
10. 11. 12. 13. 14.
{ var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true }
正则表达式
代码 1. 2. 3. 4. 5. 6. "^\\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\\d+$" //整数 "^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
} }} //校验密码:只能输入6-20个字母、数字、下划线 [code] function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true }
3. var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]) {1,12})+$/; 4. if (!patrn.exec(s)) return false 5. return true 6. } //校验邮政编码 代码 1. function isPostalCode(s) 2. { 3. //var patrn=/^[a-zA-Z0-9]{3,12}$/; 4. var patrn=/^[a-zA-Z0-9 ]{3,12}$/; 5. if (!patrn.exec(s)) return false 6. return true 7. } //校验搜索关键字 代码 1. function isSearch(s) 2. { 3. var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,. <>/?]{1}[^`~!@$%^&()+=|\\\] 4. [\]\{\}:;'\,.<>?]{0,19}$/; 5. if (!patrn.exec(s)) return false 6. return true 7. } 8. 9. function isIP(s) //by zergling
17. 18. 19. 20.
符串 "^\\w+$" //由数字、26个英文字母或者下划线组成的 字符串 "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w]+)+$" //email地址 "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))* (\\?\\S*)?$" //url "^[A-Za-z0-9_]*$"
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 代码 1. function isTel(s) 2. { 3. //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d) {1,12})+$/; 4. var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]) {1,12})+$/; 5. if (!patrn.exec(s)) return false 6. return true 7. } //校验手机号码:必须以数字开头,除数字外,可含有“-” 代码 1. function Mobil(s) 2. {
4. “\B”定位符则规定匹配对象必须位于目标字符串的开头和结 尾两个边界之内, 5. 即匹配对象既不能作为目标字符串的开头,也不能作为 目标字符串的结尾。 同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两 组定位符。举例来说: /^hell/ 因为上述正则表达式中包含“^”定位 符,所以可以与目标对象中以 “hell”, “hello”或“hellhound”开头的字 符串相匹配。 /ar$/ 因为上述正则表达式中包含“$”定位符,所以可 以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。 /\bbom/ 因为上述正则表达式模式以“\b”定位符开头,所以可以与目 标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。/man\b/ 因 为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。 为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在 匹配模式中指定某一个范围而不局限于具体的字符。例如: 代码 1. /[A-Z]/ 上述正则表达式将会与从A到Z范围内任何一个 大写字母相匹配。 2. /[a-z]/ 上述正则表达式将会与从a到z范围内任何一个小 写字母相匹配。 3. /[0-9]/ 上述正则表达式将会与从0到9范围内任何一个数 字相匹配。 4. /([a-z][A-Z][0-9])+/ 上述正则表达式将会与任何由字母 和数字组成的字符串,如 “aB0” 等相匹配。 这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字 符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因
JS的正则表达式
//校验是否全由数字组成 代码 1. function isDigit(s) 2. { 3. var patrn=/^[0-9]{1,20}$/; 4. if (!patrn.exec(s)) return false 5. return true 6. } //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字 串 代码 1. function isRegisterUserName(s) 2. { 3. var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]) {4,19}$/; 4. if (!patrn.exec(s)) return false 5. return true 6. } //校验用户姓名:只能输入1-30个以字母开头的字串 代码 1. function isTrueName(s) 2. { 3. var patrn=/^[a-zA-Z]{1,30}$/; 4. if (!patrn.exec(s)) return false 5. return true