﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-herodby-文章分类-javascript</title><link>http://www.blogjava.net/herodby/category/17804.html</link><description>技术 笔记</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 10:02:55 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 10:02:55 GMT</pubDate><ttl>60</ttl><item><title>javascript 正则表达式</title><link>http://www.blogjava.net/herodby/articles/84541.html</link><dc:creator>小兵</dc:creator><author>小兵</author><pubDate>Thu, 30 Nov 2006 05:49:00 GMT</pubDate><guid>http://www.blogjava.net/herodby/articles/84541.html</guid><wfw:comment>http://www.blogjava.net/herodby/comments/84541.html</wfw:comment><comments>http://www.blogjava.net/herodby/articles/84541.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/herodby/comments/commentRss/84541.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/herodby/services/trackbacks/84541.html</trackback:ping><description><![CDATA[RegExp类是正则表达式类,它的构造函数可以是2个或者1个. 第一个参数是匹配的模式(字符串),第二个参数是是额外的处理指令.<br />它有2个方法用来匹配模式 test方法,比较常用,不做介绍.  exec方法,有一个参数,即被匹配的字符串, 返回一个数组, 数组的第一个条目为第一个匹配字符串,其他的为反向引用.<br />String类的replace方法可以扩展,也就是说方法的第一个参数是一个正则表达式,第二个数是一个替换的字符串.同时第二个参数可以一个方法function.例如:<br />var bb = "a bat,a cat,a fAt,a faT cat";<br />var reg = /at/gi;<br />alert(bb.replace(reg,function(sMatch){alert(sMatch); return "dog";}));<br />看看会输出什么,^_^.<br />反向引用: 是按照从左到右遇到的作括号的顺序进行创建和编号的.例如:<br />var  sToMatch="#123456";<br />var reg=/#(\d+)/;<br />reg.test(sToMatch);<br />alert(RegExp.$1);  <br />输出的是123456;<br /><br />RegExp的实例属性:<br />global:  bool值,用g表示 是否设置全局选项.<br />ignoreCase:bool值,用i表示 是否忽略大小写.<br />lastIndex:整数,大表下次匹配将会从哪个字符位置开始(只有当使用exec()或test()函数后才会填入,否则为0);<br />source: 增则表达式的原字符串形式.例如:/[bar]*/ 的source将返回[bar]*<br /><br />RegExp的静态属性列表:<br />静态属性有2个名字,一个是复杂名,一个是以美元符号开头的简短名字<br /><strong>复杂名</strong>                    <strong> 短名</strong>                                                <strong>描述<br /></strong>input                         $_                         <font size="2"><font size="1">最后用于匹配的字符串(传递给test或exec方法的字符串)</font>    <br /></font>lastMatch                  $&amp;                       <font size="1">最后匹配的字符</font><br />lastParen                   $+                        <font size="1">最后匹配的分组</font><br />leftContext               $`                          <font size="1">上次配配的前面的字符串</font><br />multiline                   $*                         <font size="1">用于指定是否所有的表达式都使用多行模式的bool值<br /></font>rightContext             $'                           <font size="1">上次配配之后的字符串<br /></font><br />例子:<br />var  sMatch="this has been a short ,short number";<br />var  reg = /(s)hort/g;<br />reg.test(sMatch);<br />alert(RegExp.$_);  //  this has been a short ,short number<br />alert(RegExp.$`);// this has bean  a<br />alert(RegExp.$');// ,short number<br />alert(RegExp.$&amp;)// short<br />alert(regExp.$+);// s<br />上面的例子使用的短名称,可以用"."操作符,但是 大部分都应该用"[ ]"标记,因为有些script不支持.regexp["$_"]<br />每次执行exec 或者test时这些属性除了multiline以为都会被重新设置.但是IE和opera不支持multiline属性,所以最好单独的每个表达式设置m选项,而不要直接设置这个标记.<br /><img src ="http://www.blogjava.net/herodby/aggbug/84541.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/herodby/" target="_blank">小兵</a> 2006-11-30 13:49 <a href="http://www.blogjava.net/herodby/articles/84541.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>