理解RegExp对象
来源:互联网 发布:制图软件免费下载 编辑:程序博客网 时间:2024/06/01 11:51
创建一个RegExp对象后,把它应用到某个字符串上面。下面看几个常用的方法:
1、test(),如果给定字符串(只有一个参数)匹配这个模式,它就返回true,否则返回false。例如:
<script type="text/javascript">var sToMatch = "cat";var reCat = new RegExp("cat");alert(reCat.test(sToMatch));</script>如果模式在字符串中出现一次,就会认为是一个匹配,就会返回true。
2、exec(),有一个字符串参数,返回一个数组。数组的第一个条目是第一个匹配,其他的是反向引用。例如:
<script type="text/javascript">sToMatch = "a bat, a fAt, a cat";reCat = new RegExp("at", "gi");var arrMatches = reCat.exec(sToMatch);alert(arrMatches.length);</script>3、String的match(),它会返回一个包含在字符串数组中的所有匹配的数组。这个方法调用String对象,同时传给它一个RegExp对象:
<script type="text/javascript">var x;var sToMatch = "a bat, a fAt, a cat";var reCat = new RegExp("at", "gi");var arrStringMatches = sToMatch.match(reCat);alert(arrStringMatches.length);for(x in arrStringMatches){document.write(x + ": " + arrStringMatches[x] + "<br/>");}</script>4、search(),其行为与indexOf()类似,但是search使用一个RexExp对象而非仅仅一个字符串。该方法返回在字符串中出现的一个匹配的位置
<script type="text/javascript">var x;var sToMatch = "a bat, a fAt, a cat";var reCat = new RegExp("at", "gi");alert(sToMatch.search(reCat));</script>5、replace(),用另一个字符串(第二个参数)来替换某个字串(第一个参数)的所有匹配。例如:
<script type="text/javascript">var sToChange = "The sky is red, red";var reRed = new RegExp("red", "g");var sResultText = sToChange.replace(reRed, function(sMatch){return "blue";});var sResultText1 = sToChange.replace(reRed, "blue");alert(sResultText);alert(sResultText1);</script>6、split(),它可以将字符串分割成一系列子串并通过一个数组将他们返回,例如:
<script type="text/javascript">var sColors = "red, blue, yellow, green";var eeComma = new RegExp("\,");var arrColors = sColors.split(eeComma);alert(arrColors.length);for(x in arrColors){document.write(x + ": " + arrColors[x] + "<br/>");}</script>
下面来看一下RegExp对象的一些实例属性:
Global
布尔值,表示g(全局选项)是否已经设置
ignoreCase
布尔值,表示i(忽略大小写选项)是否已经设置
lastIndex
整数,代表下次匹配将会从哪个位置开始(只有当使用exec或test函数才会填入,否则为0)
Multiline
布尔值,表示m(多行模式选项)是否已经设置
Source
正则表达式的源字符串形式
<script type="text/javascript">var reTest = /[ba]*/i;alert(reTest.global);alert(reTest.ignoreCase);alert(reTest.multiline);alert(reTest.source);var sToMatch = "bbq is short for barbeque";var reB = /b/g;reB.exec(sToMatch)alert(reB.lastIndex);reB.exec(sToMatch)alert(reB.lastIndex);reB.exec(sToMatch)alert(reB.lastIndex);reB.exec(sToMatch)alert(reB.lastIndex);</script>
静态的RegExp属性对所有的正则表达式都有效。这些属性也都是与众不同的,因为他们都有两个名字:一个复杂名字和一个以美元符号开头的简短名字:
长名
短名
描述
Input
$_
最后用于匹配的字符串(传递给exec或test的字符串)
lastMatch
$&
最后匹配的字符
lastParen
$+
最后匹配的分组
leftContext
&`
在上次匹配的前面的字串
Multiline
$*
用于指定是否所有的表达式都使用多行模式的布尔值
rightContext
$’
在上次匹配之后的字串
<script type="text/javascript"><!--静态属性var sToMatch = "this has been a short , short summer";var reShort = /(s)hort/g;reShort.test(sToMatch);alert(RegExp.input);alert(RegExp.leftContext);alert(RegExp.rightContext);alert(RegExp.lastMatch);alert(RegExp.lastParen);<!--注意每次执行exec或test时,所有的属性(除了multiline外)都会被重新设置</script>
- 理解RegExp对象
- RegExp 对象
- RegExp对象
- RegExp对象
- RegExp 对象
- RegExp对象
- RegExp对象
- RegExp对象
- RegExp对象
- RegExp() 对象
- RegExp对象
- RegExp对象
- 正则表达式(RegExp)对象
- JavaScript RegExp 对象参考
- RegExp 对象的方法
- JavaScript RegExp 对象
- JS中的RegExp对象
- JavaScript RegExp 对象
- hdu 1026 Ignatius and the Princess I 打小怪兽
- 学习java的!注意
- Android应用资源---本地化(Localization)(三)
- Android 控制横竖屏幕的方法
- WindowsMediaPlayer和MediaPlayer控件区别及其使用
- 理解RegExp对象
- Linux守护进程实现 (C语言)
- oracle的em配置错误纠正
- 第九周C++任务三。定义分数类中<<和>>运算符重载,实现分数的输入输出
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- (完全背包)Piggy-Bank(P1384)
- 第八周任务4
- Linux中创建静态库和动态库
- 刷机资源