模式表达式首尾带有“/”,声明并初始化正则表达式对象可以使用RegExp对象,也可直接将用“/”包含的模式表达式赋值给变量。 模式表达式中的字符 字符 含义 \ (1)一个特殊标记的开始(例:\d表示一个数字) (2)把一个特殊字符当做普通字符对待(例:\*表示一个星号) ^ 字符串的开头 $ 字符串的结尾 * 特殊数量符,表示它前面的标记或标记组合出现任意次(包括0次) + 特殊数量符,表示它前面的标记或标记组合出现至少一次 ? 特殊数量符,表示它前面的标记或标记组合出现至多一次 . 表示除了换行符(\n)之外的任意单个字符 (abc) 表示abc这个组合 a|b 表示a或者b {3} 表示它前面的标记或标记组合出现3次 {3,} 表示它前面的标记或标记组合至少出现3次 {4,8} 表示它前面的标记或标记组合出现4次至8次 [abcdef] 这是枚举形式,表示a至f六个字母中的任意一个 [a-f] 这是简化形式,表示a至f六个字母中的任意一个 [a-zA-Z0-9] 表示大小写字母及数字中的任意一个 [^aeiou] 表示除了a,e,i,o,u处的任意一个 \b 表示一个单词的边界 \B 表示一个单词的非边界 \d 表示一个数字,相当于[0-9] \D 表示除了数字外的字符,相当于[^0-9] \s 表示一个空格符 \S 表示除了空格外的字符 \t 表示一个制表符 \n 表示一个换行符 \r 表示一个回车符 \w 表示大小写字母、数字及下划线(_)中的任意一个,相当于[a-zA-Z0-9] \W 表示大小写字母、数字及下划线(_)之外的任意一个,相当于[^a-zA-Z0-9] \0 表示空字符null <script language="javascript"> <!-- var pattern = /^d...{6}$/; //声明了正则表达式对象 function checkZipCode() ...{ var zipcode = document.getElementById("zipcode").value; if(!pattern.test(zipcode)) //进行模式匹配 ...{ alert("邮政编码无效!"); return; } alert("ok!"); } --> </script> 邮政编码:<input type="text" id="zipcode"><input type="button" value="check" onclick="checkZipCode();">RegExp 对象 RegExp对象的构造函数:RegExp(pattern,attributes) 例:var p = new RegExp("s$"); //任何以s结尾的字符串 参数:pattern 是模式表达式,也可以是一个正则表达式对象。 参数:attributes可以是"g"、"i"或"m" g:表明搜索模式为全局匹配 i:表示在匹配过程中忽略大小写 m:表示支持多行匹配
RegExp对象的属性 lastIndex属性:用于在全局匹配模式下记录最近一次执行exec()或test()方法匹配到的字符索引,以便从该位置继续下一次匹配。 source属性:代表模式表达式,不包含首尾“/” RegExp对象的方法 exec方法:用于执行较为全面的模式匹配,其参数是将进行匹配的字符串,返回值为数组类型。 数组中的第一个元素是与模式表达式匹配的那部分文本。返回的数组还有以下几个属性: length:表明数组的长度 index:表明匹配的文本首字母在字符串中的位置(索引) input:字符串本身 <script language="javascript"> <!-- var pattern1 = new RegExp("\bJava\B","g"); var text = "JavaScript is more fun than Java or JavaBeans!"; var result; while((result = pattern1.exec(text)) != null)...{ document.write("匹配文本为:" + result[0] + " 位置为:" + result.index + " 下次查找的起始位置:" + pattern1.lastIndex + "<br/>"); }
var pattern2 = /Java(s|b)/gi; while((result = pattern2.exec(text)) != null)...{ document.write("返回的第一个元素:" + result[0] + " 返回的第二个元素:" + result[1] + "<br/>"); } --> </script>
|