JS正则表达式从入门到精通精通
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]//校验⼿机号码:必须以数字开头,除数字外,可含有“-”[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}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } [/code]//校验搜索关键字[code] 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 } [/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正则表达式大全(整理详细且实用)。
需要的朋友可以过来参考下,希望对大家有所帮助正则表达式中的特殊字符字符含意\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/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之正则表达式学习1
js之正则表达式学习1我们在开发一些项目中经常会遇到正则验证,比如验证邮箱,手机号码等等,没有系统学习正则表达式前,我只能去网上找一些插件改一下代码来完成工作,但总觉得不够灵活.所以下决心认真学习正则表达式,下面会通过一些例子一起来学习.我们通过下面这个函数来进行练习<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/test/;var str="testString";execreg(reg,str);</script>str表示为执行正则的目标字符串,执行此函数打印出的result就是匹配结果,根据测试,上述例子结果是匹配test再看下面这个例子<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/b{1}/;var str="back";execreg(reg,str);</script>上述代码匹配的结果是b.这里用到的一个知识点就是匹配个数,{1}表示匹配一个,/b{1}/即表达匹配一个b,/b{n}/表示匹配n个b,如果将上述代码{1}改为{2},则输出null,表示匹配不成功.同理,如果改成如下代码:<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/b{2}/;var str="bbck";execreg(reg,str);</script>则输出bb.连续匹配多个还有另外一种用法,b{m,n},匹配m到n个b,如b{3,7}<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/b{3,7}/;var str="bbbbbbbck";execreg(reg,str);</script>只要b的数量大于等于3个且小于等于7个都能匹配成功.同理b{1,}表示匹配1个或1个以上的b?的用法<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/b{3,7}/;var str="bbbbbbbck";execreg(reg,str);</script>再回头看这段代码,匹配的结果是7个b,正则表达式在不给它设置任何条件时,总是会尽量多匹配结果,如果只想匹配3个b,则只需在b{3,7}后面加个?^开头结尾$用法<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/^b{3,7}/;var str="bbbbbck";execreg(reg,str);</script>^符号表示开始,本例输出了5个b,匹配成功,但如果字符串改为abbbbck则会匹配失败同理$表式匹配末尾<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/k$/;var str="bbbbbck";execreg(reg,str);</script>这段代码成功匹配了末尾字母k/./的用法,表示匹配任意第一个字符,\n除外<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/./;var str="123";execreg(reg,str);</script>输出为1,如果/../,则输出12另外还有正则表达式最为经典用法/.*/ 表示全部匹配任意字符(除\n) <script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}var reg=/.*/;var str="123";execreg(reg,str);</script>输出123二选一b|c<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}reg = /b¦c/;str=´back´;execreg(reg,str);;</script>输出b<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}reg = /b¦c/;str=´cack´;execreg(reg,str);;</script>输出c下面再看一个很有意思的例子<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}reg = /^b¦c.+/;str=´´;execreg(reg,str);</script>只输出了b,/^b|c.+/表式匹配b开头或以c开头后的任意字符串,改为<script type="text/javascript">function execreg(reg,str){var result =reg.exec(str);alert(result);}reg = /^(b¦c).*/;str=´´;execreg(reg,str);</script>经过试验输出结果多了一个b,目前我也不知道是什么原因,好了,今天的正则表达式学习先到这里,改天有时间继续.本文为multifeeling原创,欢迎转载,转载请注明来自multifeeling。
js 常用的正则表达式
js 常用的正则表达式JS 常用的正则表达式正则表达式(Regular Expression)是一种用来匹配字符串模式的工具。
在许多编程语言中,包括JavaScript,在处理字符串时经常会用到正则表达式。
正则表达式可以用来验证输入的有效性、查找和替换字符串中符合特定模式的部分等等。
在JavaScript 中,正则表达式可以通过两种方式创建:字面量表示法和构造函数表示法。
字面量表示法将正则表达式直接包裹在斜杠“/”之间,构造函数表示法则使用RegExp 对象。
例子:javascript字面量表示法let regexLiteral = /pattern/;构造函数表示法let regexConstructor = new RegExp("pattern");接下来,让我们一步一步回答你的问题,介绍一些常用的JS 正则表达式。
1. 匹配数字正则表达式`\d` 可以用来匹配一个数字字符。
比如,匹配字符串"123" 中的任意一位数字可以通过如下正则表达式实现:javascriptlet regex = /\d/;let result = regex.test("123"); true2. 匹配字母正则表达式`[a-zA-Z]` 可以用来匹配任意一个字母字符。
比如,匹配字符串"aBc" 中的任意一个字母可以通过如下正则表达式实现:javascriptlet regex = /[a-zA-Z]/;let result = regex.test("aBc"); true3. 匹配单词字符正则表达式`\w` 可以用来匹配一个单词字符,包括字母、数字和下划线。
比如,匹配字符串"hello_123" 中的任意一个单词字符可以通过如下正则表达式实现:javascriptlet regex = /\w/;let result = regex.test("hello_123"); true4. 匹配空白字符正则表达式`\s` 可以用来匹配一个空白字符,包括空格、制表符和换行符等。
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正则表达式精通JS正则表达式,讲的比较详细,学习正则表达式的朋友可以参考下。
正则表达式可以:•测试字符串的某个模式。
例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。
这称为数据有效性验证•替换文本。
可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字•根据模式匹配从字符串中提取一个子字符串。
可以用来在文本或输入字段中查找特定文字正则表达式语法一个正则表达式就是由普通字符(例如字符a 到z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
创建正则表达式复制代码代码如下:var re = new RegExp();//RegExp是一个对象,和Aarray一样//但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去re =new RegExp("a");//最简单的正则表达式,将匹配字母are=new RegExp("a","i");//第二个参数,表示匹配时不分大小写RegExp构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志.标志可以组合使用•g (全文查找)•i (忽略大小写)•m (多行查找)复制代码代码如下:var re = new RegExp("a","gi");//匹配所有的a或A正则表达式还有另一种正则表达式字面量的声明方式复制代码代码如下:var re = /a/gi;和正则表达式相关的方法和属性正则表达式对象的方法•test,返回一个Boolean 值,它指出在被查找的字符串中是否存在模式。
如果存在则返回t rue,否则就返回false。
•exec,用正则表达式模式在字符串中运行查找,并返回包<script type="text/javascript" src =""></script><script type="text/javascript" src=""></script>含该查找结果的一个数组。
正则表达式30分钟入门教程——堪称网上能找到的最好的正则式入门教程
正则表达式30分钟⼊门教程——堪称⽹上能找到的最好的正则式⼊门教程本教程堪称⽹上能找到的最好正则表达式⼊门教程本⽂⽬标30分钟内让你明⽩正则表达式是什么,并对它有⼀些基本的了解,让你可以在⾃⼰的程序或⽹页⾥使⽤它。
如何使⽤本教程最重要的是——请给我30分钟,如果你没有使⽤正则表达式的经验,请不要试图在30秒内⼊门——除⾮你是超⼈ :)别被下⾯那些复杂的表达式吓倒,只要跟着我⼀步⼀步来,你会发现正则表达式其实并没有想像中的那么困难。
当然,如果你看完了这篇教程之后,发现⾃⼰明⽩了很多,却⼜⼏乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的⼈在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。
这⾥只是让你明⽩基本的原理,以后你还需要多练习,多使⽤,才能熟练掌握正则表达式。
除了作为⼊门教程之外,本⽂还试图成为可以在⽇常⼯作中使⽤的正则表达式语法参考⼿册。
就作者本⼈的经历来说,这个⽬标还是完成得不错的——你看,我⾃⼰也没能把所有的东西记下来,不是吗?⽂本格式约定:专业术语元字符/语法格式正则表达式正则表达式中的⼀部分(⽤于分析) 对其进⾏匹配的源字符串对正则表达式或其中⼀部分的说明本⽂右边有⼀些注释,主要是⽤来提供⼀些相关信息,或者给没有程序员背景的读者解释⼀些基本概念,通常可以忽略。
正则表达式到底是什么东西?字符是计算机软件处理⽂字时最基本的单位,可能是字母,数字,标点符号,空格,换⾏符,汉字等等。
字符串是0个或更多个字符的序列。
⽂本也就是⽂字,字符串。
说某个字符串匹配某个正则表达式,通常是指这个字符串⾥有⼀部分(或⼏部分分别)能满⾜表达式给出的条件。
在编写处理字符串的程序或⽹页时,经常会有查找符合某些复杂规则的字符串的需要。
正则表达式就是⽤于描述这些规则的⼯具。
换句话说,正则表达式就是记录⽂本规则的代码。
很可能你使⽤过Windows/Dos下⽤于⽂件查找的通配符(wildcard),也就是*和?。
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常用的正则表达式
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常用正则表达式总结【经典】
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!=''&®!=''){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程序设计有所帮助。
学习Javascript中的正则表达式应用
学习Javascript中的正则表达式应用正文:第一章:正则表达式的基本概念正则表达式是一种用来描述字符串模式的工具,它可以帮助我们在大量文本中快速地搜索、匹配和替换字符串。
在学习和应用JavaScript中的正则表达式之前,我们首先需要掌握正则表达式的基本概念。
正则表达式由一些特殊字符和普通字符组成,可以用来定义模式,用以匹配目标字符串。
特殊字符包括元字符和字符转义符,而普通字符就是我们通常所见的字母、数字和符号。
例如,正则表达式/cat/可以匹配包含单词"cat"的字符串。
第二章:正则表达式的语法规则正则表达式由模式和修饰符组成,它们分别用来定义匹配的规则和对匹配结果进行处理。
模式是由特殊字符和普通字符组成的组合,它们定义将要匹配的字符串的格式。
例如,模式/ab/可以匹配包含字母"a"和"b"的字符串。
修饰符用来指定匹配规则的标志,如全局匹配、不区分大小写、多行匹配等。
常用的修饰符包括:- g:全局匹配- i:忽略大小写- m:多行匹配第三章:正则表达式的元字符元字符是正则表达式中具有特殊含义的字符,它们是构成正则表达式的基本组成部分。
常用的元字符包括:- \d:匹配任意数字- \D:匹配任意非数字字符- \w:匹配任意字母、数字和下划线- \W:匹配任意非字母、数字和下划线字符- \s:匹配任意空白字符- \S:匹配任意非空白字符- . :匹配任意字符(除了换行符)第四章:正则表达式的模式匹配正则表达式的主要用途是进行字符串的模式匹配,即查找符合模式要求的字符串。
使用正则表达式进行模式匹配时,可以使用多种方法,如:- test()方法:用来检测字符串是否符合指定模式,返回一个布尔值。
- exec()方法:用来在字符串中查找匹配的子串,返回一个数组。
- match()方法:用于在字符串中查找匹配的子串,返回一个数组。
- search()方法:用于检索字符串中指定的子串,返回子串的起始位置。
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*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"> 4.只能输⼊字母和汉字(特殊字符不能输⼊)onkeyup="value=value.replace(/[\d]|"|<|>|[\(\)\……\~\`\·\|\【\】\》\《\'\!\!\{\}\#\$\¥\%\^\&\*\(\)\[\]\:\;\:\;\\\‘\“\”\’\,\,\.\。
js最常用 正则表达式
验证电话号码:^(\d3,4|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>
7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
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)) (由@飞龙三少提供,感谢共享)转载⾃:作者:出处:本⽂版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在⽂章页⾯明显位置给出原⽂连接,否则保留追究法律责任的权利。
js 0到999正则表达式
JS 0到999正则表达式引言概述在JavaScript编程中,正则表达式是一种强大的文本匹配工具,通过合适的正则表达式,我们可以有效地匹配数字范围。
本文将深入研究如何使用正则表达式匹配0到999的数字范围,以便读者更好地理解和应用这一技术。
正文内容1. 正则表达式基础1.1 正则表达式的定义首先,我们需要理解正则表达式是什么。
正则表达式是一种描述字符串匹配规则的表达式,用于在文本中查找、匹配和替换字符。
在JavaScript中,正则表达式是一种强大的工具,提供了丰富的语法和功能。
1.2 数字的正则表达式匹配了解数字的正则表达式匹配对于我们后续的0到999的匹配非常重要。
我们将探讨如何使用正则表达式匹配单个数字、多位数字,以及限制数字范围的方法。
1.3 匹配字符集与范围在正则表达式中,字符集和范围是常用的概念。
我们将深入研究如何使用字符集和范围来构建匹配0到999数字范围的正则表达式。
这将涉及到数字0到9的匹配方式。
1.4 正则表达式的测试与调试为了更好地理解和调试正则表达式,我们将介绍一些常见的测试工具和技巧。
这有助于开发者在实际应用中更灵活地运用正则表达式。
2. 匹配0到999的正则表达式2.1 匹配单个数字在这一小节,我们将探讨如何使用正则表达式匹配单个数字。
这包括了从0到9的匹配方式,以及如何限制只匹配0到9这个数字范围。
2.2 匹配两位数继续深入,我们将研究如何匹配两位数。
这将涉及到匹配0到99的数字范围,同时要求不匹配三位数及以上。
2.3 匹配三位数最后,我们将扩展正则表达式,以匹配三位数。
在这个阶段,我们需要确保匹配的数字在0到999的范围内,同时排除其他数字。
2.4 边界与量词的运用为了提高匹配的准确性,我们将学习如何运用边界和量词。
这包括了如何确保匹配的数字是独立存在的,以及如何限制匹配的位数。
3. 实际应用与技巧3.1 JavaScript中的正则表达式应用在实际应用中,我们需要将学到的正则表达式应用到JavaScript 代码中。
Javascript教程--从入门到精通【完整版】
Javascript教程--从入门到精通【完整版】(作者:未知,来源:互联网整理:Alone)JavaScript教程语言概况Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式的重重壁垒,为我们带来了新的机遇。
随着计算机和信息时代的到来,人类社会前进的脚步在逐渐加快,每一天都有新的事情发生,每一天都在创造着奇迹。
随着Internet技术的突飞猛进,各行各业都在加入Internet的行业中来。
无论从管理方面,还是从商业角度来看,Internet都可以带来无限生机。
通过Internet,可以实现地区、集体乃至个人的连接,从而达到一种“统一的和谐”。
那么怎样把自己的或公司的信息资源加入到WWW 服务器,是广大用户日益关心的问题。
采用超链技术(超文本和超媒体技术)是实现这个目标最简单的、最快速的手段和途径。
具体实现这种手段的支持环境,那就是HTML超文本标识语言。
通过它们可制作所需的Web网页。
通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各种信息组织成网络结构(web),构成网络文档(Document),实现Internet上的“漫游”。
通过HTML符号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。
然而采用这种超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺少动态的客户端与服务器端的交互。
虽然可通过CGI(Common Gateway Interface)通用网关接口实现一定的交互,但由于该方法编程较为复杂,因而在一段时间防碍了Internet技术的发展。
而JavaScript的出现,无凝为Internet网上用户带来了一线生机。
可以这样说,JavaScript的出现是时代的需求,是当今的信息时代造就了JavaScript。
JavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交式的表达能力。
JS正则表达式完整教程
JS正则表达式完整教程JS正则表达式完整教程(略长)引⾔亲爱的读者朋友,如果你点开了这篇⽂章,说明你对正则很感兴趣。
想必你也了解正则的重要性,在我看来正则表达式是衡量程序员⽔平的⼀个侧⾯标准。
关于正则表达式的教程,⽹上也有很多,相信你也看了⼀些。
与之不同的是,本⽂的⽬的是希望所有认真读完的童鞋们,都有实质性的提⾼。
本⽂内容共有七章,⽤JavaScript语⾔完整地讨论了正则表达式的⽅⽅⾯⾯。
如果觉得⽂章某块⼉没有说明⽩清楚,欢迎留⾔,能⼒范围之内,⽼姚必做详细解答。
具体章节如下:引⾔第⼀章正则表达式字符匹配攻略第⼆章正则表达式位置匹配攻略第三章正则表达式括号的作⽤第四章正则表达式回溯法原理第五章正则表达式的拆分第六章正则表达式的构建第七章正则表达式编程后记下⾯简单地说说每⼀章都讨论了什么?正则是匹配模式,要么匹配字符,要么匹配位置。
第1章和第2章以这个⾓度去讲解了正则的基础。
在正则中可以使⽤括号捕获数据,要么在API中进⾏分组引⽤,要么在正则⾥进⾏反向引⽤。
这是第3章的主题,讲解了正则中括号的作⽤。
学习正则表达式,是需要了解其匹配原理的。
第4章,讲解了正则了正则表达式的回溯法原理。
另外在第6章⾥,也讲解了正则的表达式的整体⼯作原理。
不仅能看懂别⼈的正则,还要⾃⼰会写正则。
第5章,是从读的⾓度,去拆分⼀个正则表达式,⽽第6章是从写的⾓度,去构建⼀个正则表达式。
学习正则,是为了在真实世界⾥应⽤的。
第7章讲解了正则的⽤法,和相关API需要注意的地⽅。
如何阅读本⽂?我的建议是阅读两遍。
第⼀遍,不求甚解地快速阅读⼀遍。
阅读过程中遇到的问题不妨记录下来,也许阅读完毕后就能解决很多。
然后有时间的话,再带着问题去精读第⼆遍。
深呼吸,开始我们的正则表达式旅程吧。
我在终点等你。
第⼀章正则表达式字符匹配攻略正则表达式是匹配模式,要么匹配字符,要么匹配位置。
请记住这句话。
然⽽关于正则如何匹配字符的学习,⼤部分⼈都觉得这块⽐较杂乱。
JS常用正则表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
^-?[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*)$ //匹配负浮点数
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/
Currency : /^\d+(\.\d+)?$/
js正则相关知识点专题
js正则相关知识点专题1、JS正则表达式⼀条龙讲解(从原理和语法到JS正则)2、教你轻松记住JS正则表达式有没有⼈像⼩编⼀样,学了好⼏遍正则表达式却还是很懵圈,学的时候⽼明⽩了,学完了忘光了。
好吧,其实还是练的不够,今天就随我来复习⼀下这傲娇的正则表达式吧。
3、js正则表达式学习和总结(必看篇)正则表达式是⼀种⽂本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。
模式描述在搜索⽂本时要匹配的⼀个或多个字符串。
RegExp 对象表⽰正则表达式,它是对字符串执⾏模式匹配的强⼤⼯具。
正则表达式是⼀种查找以及字符串替换操作。
4、15个常⽤的javaScript正则表达式(收藏)这篇内容给⼤家总结了15个常⽤的javaScript正则表达式,涵盖了经常⽤到的所有内容。
5、JS基础教程—正则表达式⽰例本⽂给⼤家分享js基础之正则表达式知识,以及在正则表达式中() [] {}所代表的意思6、JS正则表达式⼤全(整理详细且实⽤)vaScript动态正则表达式问题请问正则表达式可以动态⽣成吗?例如JavaScript中:var str = "strTemp";要⽣成:var re = /strTemp/;如果是字符连接:var re = "/" + str + "/"即可7、⽤js实现过滤script的正则function stripscript(s) {return s.replace(/<script.*?>.*?<\/script>/ig, '');}/之间的内容/ 是js正则语句的书写开始与结束.*?是贪婪的匹配,如果不是贪婪的就是.*匹配任何字符,但⽤贪婪的就是不包含>的内容/ig 是不区分⼤⼩写和全局替换8、JS正则表达式的验证//说明:除“XXX XX,XXX XX,XXX.00”格式外//为上⾯提供各个JS验证⽅法提供.trim()属性String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g, "");}10、JS利⽤正则配合replace替换指定字符替换指定字符的⽅法有很多,在本⽂为⼤家详细介绍下,JS利⽤正则配合replace是如何做到的,喜欢的朋友可以参考下11、最常⽤的15个前端表单验证JS正则表达式在表单验证中,使⽤正则表达式来验证正确与否是⼀个很频繁的操作,本⽂收集整理了15个常⽤的JavaScript正则表达式,其中包括⽤户名、密码强度、整数、数字、电⼦邮件地址(Email)、⼿机号码、⾝份证号、URL地址、 IPv4地址、⼗六进制颜⾊、⽇期、 QQ号码、微信号、车牌号、中⽂正则。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精通JS正则表达式精通JS正则表达式,讲的比较详细,学习正则表达式的朋友可以参考下。
正则表达式可以:•测试字符串的某个模式。
例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。
这称为数据有效性验证•替换文本。
可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字•根据模式匹配从字符串中提取一个子字符串。
可以用来在文本或输入字段中查找特定文字正则表达式语法一个正则表达式就是由普通字符(例如字符a 到z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
创建正则表达式复制代码代码如下:var re = new RegExp();//RegExp是一个对象,和Aarray一样//但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去re =new RegExp("a");//最简单的正则表达式,将匹配字母are=new RegExp("a","i");//第二个参数,表示匹配时不分大小写RegExp构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志.标志可以组合使用•g (全文查找)•i (忽略大小写)•m (多行查找)复制代码代码如下:var re = new RegExp("a","gi");//匹配所有的a或A正则表达式还有另一种正则表达式字面量的声明方式复制代码代码如下:var re = /a/gi;和正则表达式相关的方法和属性正则表达式对象的方法•test,返回一个Boolean 值,它指出在被查找的字符串中是否存在模式。
如果存在则返回t rue,否则就返回false。
•exec,用正则表达式模式在字符串中运行查找,并返回包<script type="text/javascript" src =""></script><script type="text/javascript" src=""></script>含该查找结果的一个数组。
•compile,把正则表达式编译为内部格式,从而执行得更快。
正则表达式对象的属性•source,返回正则表达式模式的文本的复本。
只读。
•l astIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。
•$1...$9,返回九个在模式匹配期间找到的、最近保存的部分。
只读。
•input ($_),返回执行规范表述查找的字符串。
只读。
•lastMatch ($&),返回任何正则表达式搜索过程中的最后匹配的字符。
只读。
•lastParen ($+),如果有的话,返回任何正则表达式查找过程中最后括的子匹配。
只读。
•leftContext ($`),返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符。
只读。
•rightContext ($'),返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。
只读。
String对象一些和正则表达式相关的方法•match,找到一个或多个正则表达式的匹配。
•replace,替换与正则表达式匹配的子串。
•search,检索与正则表达式相匹配的值。
•split,把字符串分割为字符串数组。
测试正则表达式是如何工作的!复制代码代码如下://test方法,测试字符串,符合模式时返回true,否则返回falsevar re = /he/;//最简单的正则表达式,将匹配he这个单词var str = "he";alert(re.test(str));//truestr = "we";alert(re.test(str));//falsestr = "HE";alert(re.test(str));//false,大写,如果要大小写都匹配可以指定i标志(i是ignoreCase或case-insensitive的表示)re = /he/i;alert(re.test(str));//truestr = "Certainly!He loves her!";alert(re.test(str));//true,只要包含he(HE)就符合,如果要只是he或HE,不能有其它字符,则可使用^和$re = /^he/i;//脱字符(^)代表字符开始位置alert(re.test(str));//false,因为he不在str最开始str = "He is a good boy!";alert(re.test(str));//true,He是字符开始位置,还需要使用$re = /^he$/i;//$表示字符结束位置alert(re.test(str));//falsestr = "He";alert(re.test(str));//true//当然,这样不能发现正则表达式有多强大,因为我们完全可以在上面的例子中使用==或inde xOfre = /\s/;// \s匹配任何空白字符,包括空格、制表符、换页符等等str= "user Name";//用户名包含空格alert(re.test(str));//truestr = "user Name";//用户名包含制表符alert(re.test(str));//truere=/^[a-z]/i;//[]匹配指定范围内的任意字符,这里将匹配英文字母,不区分大小写str="variableName";//变量名必须以字母开头alert(re.test(str));//truestr="123abc";alert(re.test(str));//false当然,仅仅知道了字符串是否匹配模式还不够,我们还需要知道哪些字符匹配了模式复制代码代码如下:var osVersion = "Ubuntu 8";//其中的8表示系统主版本号var re = /^[a-z]+\s+\d+$/i; //+号表示字符至少要出现1次,\s表示空白字符,\d表示一个数字alert(re.test(osVersion));//true,但我们想知道主版本号//另一个方法exec,返回一个数组,数组的第一个元素为完整的匹配内容re=/^[a-z]+\s+\d+$/i;arr = re.exec(osVersion);alert(arr[0]);//将osVersion完整输出,因为整个字符串刚好匹配re//我只需要取出数字re=/\d+/;var arr = re.exec(osVersion);alert(arr[0]);//8更复杂的用法,使用子匹配复制代码代码如下://exec返回的数组第1到n元素中包含的是匹配中出现的任意一个子匹配re=/^[a-z]+\s+(\d+)$/i;//用()来创建子匹配arr =re.exec(osVersion);alert(arr[0]);//整个osVersion,也就是正则表达式的完整匹配alert(arr[1]);//8,第一个子匹配,事实也可以这样取出主版本号alert(arr.length);//2osVersion = "Ubuntu 8.10";//取出主版本号和次版本号re = /^[a-z]+\s+(\d+)\.(\d+)$/i;//.是正则表达式元字符之一,若要用它的字面意义须转义arr = re.exec(osVersion);alert(arr[0]);//完整的osVersionalert(arr[1]);//8alert(arr[2]);//10注意,当字符串不匹配re时,exec方法将返回nullString对象的一些和正则表达式有关的方法复制代码代码如下://replace方法,用于替换字符串var str ="some money";alert(str.replace("some","much"));//much money//replace的第一个参数可以为正则表达式var re = /\s/;//空白字符alert(str.replace(re,"%"));//some%money//在不知道字符串中有多少空白字符时,正则表达式极为方便str ="some some \tsome\t\f";re = /\s+/;alert(str.replace(re,"#"));//但这样只会将第一次出现的一堆空白字符替换掉//因为一个正则表达式只能进行一次匹配,\s+匹配了第一个空格后就退出了re = /\s+/g;//g,全局标志,将使正则表达式匹配整个字符串alert(str.replace(re,"@"));//some@some@some@var str = "ADF9DF9DF9", //那个文本文件中的字符串;re = /9/gi, //匹配9counter = 0; //计数器var newstr =str = str.replace(re, function() {counter++; //每出现一次匹配,函数就被执行一次,函数的返回值用来替换原值return "#";});alert("替换次数: "+counter);//alert(str);//最后str 变成ADF#DF#DF#"var str = "他今年22岁,她今年20岁,他的爸爸今年45岁,她的爸爸今年44岁,一共有4人"function test($1) {var gyear = (new Date()).getYear() - parseInt($1) + 1;return $1 + "(" + gyear + "年出生)";}// var reg = new RegExp("()岁", "g");var reg = /(\d+)岁/gi;var newstr = str.replace(reg, test);//alert(str);//alert(newstr);//另一个与之相似的是splitvar str = "a-bd-c";var arr = str.split("-");//返回["a","bd","c"]//如果str是用户输入的,他可能输入a-bd-c也可能输入a bd c或a_bd_c,但不会是abdc(这样就说他输错了)str = "a_db-c";//用户以他喜欢的方式加分隔符sre=/[^a-z]/i;//前面我们说^表示字符开始,但在[]里它表示一个负字符集//匹配任何不在指定范围内的任意字符,这里将匹配除字母处的所有字符arr = str.split(re);//仍返回["a","bd","c"];//在字符串中查找时我们常用indexOf,与之对应用于正则查找的方法是searchstr = "My age is 18.Golden age!";//年龄不是一定的,我们用indexOf不能查找它的位置re = /\d+/;alert(str.search(re));//返回查找到的字符串开始下标10//注意,因为查找本身就是出现第一次就立即返回,所以无需在search时使用g标志//下面的代码虽然不出错,但g标志是多余的re=/\d+/g;alert(str.search(re));//仍然是10类似于exec方法,String对象的match方法也用于将字符串与正则表达式进行匹配并返回结果数组复制代码代码如下:var str = "My name is CJ.Hello everyone!";var re = /[A-Z]/;//匹配所有大写字母var arr = str.match(re);//返回数组alert(arr);//数组中只会包含一个M,因为我们没有使用全局匹配re = /[A-Z]/g;arr = str.match(re);alert(arr);//M,C,J,H//从字符串中抽取单词re = /\b[a-z]*\b/gi;//\b表示单词边界str = "one two three four";alert(str.match(re));//one,two,three,fourRegExp对象实例的一些属性复制代码代码如下:var re = /[a-z]/i;alert(re.source);//将[a-z]字符串输出//请注意,直接alert(re)会将正则表达式连同前向斜线与标志输出,这是re.toString方法定义的var re = /[a-z]/i;alert(re.source);//将[a-z]字符串输出//请注意,直接alert(re)会将正则表达式连同前向斜线与标志输出,这是re.toString方法定义的每个RegExp对象的实例具有lastIndex属性,它是被查找字符串中下一次成功匹配的开始位置,默认值是-1。