JS正则表达式从入门到精通精通

合集下载

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正则表达式大全(整理详细且实用)

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

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 常用的正则表达式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常用正则表达式语法大全

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正则表达式精通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分钟,如果你没有使⽤正则表达式的经验,请不要试图在30秒内⼊门——除⾮你是超⼈ :)别被下⾯那些复杂的表达式吓倒,只要跟着我⼀步⼀步来,你会发现正则表达式其实并没有想像中的那么困难。

当然,如果你看完了这篇教程之后,发现⾃⼰明⽩了很多,却⼜⼏乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的⼈在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。

这⾥只是让你明⽩基本的原理,以后你还需要多练习,多使⽤,才能熟练掌握正则表达式。

除了作为⼊门教程之外,本⽂还试图成为可以在⽇常⼯作中使⽤的正则表达式语法参考⼿册。

就作者本⼈的经历来说,这个⽬标还是完成得不错的——你看,我⾃⼰也没能把所有的东西记下来,不是吗?⽂本格式约定:专业术语元字符/语法格式正则表达式正则表达式中的⼀部分(⽤于分析) 对其进⾏匹配的源字符串对正则表达式或其中⼀部分的说明本⽂右边有⼀些注释,主要是⽤来提供⼀些相关信息,或者给没有程序员背景的读者解释⼀些基本概念,通常可以忽略。

正则表达式到底是什么东西?字符是计算机软件处理⽂字时最基本的单位,可能是字母,数字,标点符号,空格,换⾏符,汉字等等。

字符串是0个或更多个字符的序列。

⽂本也就是⽂字,字符串。

说某个字符串匹配某个正则表达式,通常是指这个字符串⾥有⼀部分(或⼏部分分别)能满⾜表达式给出的条件。

在编写处理字符串的程序或⽹页时,经常会有查找符合某些复杂规则的字符串的需要。

正则表达式就是⽤于描述这些规则的⼯具。

换句话说,正则表达式就是记录⽂本规则的代码。

很可能你使⽤过Windows/Dos下⽤于⽂件查找的通配符(wildcard),也就是*和?。

js数字的正则表达式

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 数字正则表达式,希望能够对读者有所帮助。

在实际应用中,开发者应根据具体需求和实际情况进行调整和优化,以达到更好的匹配效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档