专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 正则表达式:正则表达式详述 3 »正文

正则表达式:正则表达式详述 3

来源: 发布时间:星期日, 2009年9月6日 浏览:5次 评论:0
当表达式被检查时候号提供了编辑正则表达式思路方法利用文号可以使到正则表达式保持为常数例如如果你在个循环中使用文号来构造个正则表达式正则表达式不需进行反复编译正则表达式对象构造器例如 RegExp("ab+c")提供正则表达式运行时编译当你知道正则表达式模式会变化时候应该使用构造或者你不知道正则表达式模式而它们是从另外源获得时候比如由用户输入时旦你定义好了正则表达式该正则表达式可在任何地方使用并且可以改变你可以使用编译思路方法来编译个新正则表达式以便重新使用
个分离预先定义RegExp对象可以在每个窗口中使用;也就是说每个分离Javascript线程运行以获得自己RegExp对象每个脚本在个线程中是不可中断这就确保了区别脚本不会覆盖RegExp对象预定义RegExp对象包含静态属性:input, multiline, lastMatch,lastParen, leftContext,rightContext, 以及从$1到$9input和multiline属性能被预设其它静态属性值是在执行个别正则
表达式对象exec和test思路方法后且在执行match和replace思路方法后设置
属性
注意RegExp对象几个属性既有长名字又有短名字(象Perl)这些名字都是指向相同Perl是种编程语言而Javascript模仿了它正则表达式
属性$1, ..., $9
取得匹配子串如果有
属性$_
参考input
属性$*
参考multiline
属性$&
参考lastMatch
属性$+
参考lastParen
属性$`
参考leftContext
属性$'
参考rightContext
属性constructor
指定用来建立对象原型函
属性global
决定是否测试正则表达式是否不能匹配所有或者只是和最先冲突
属性ignoreCase
决定试图匹配时候是否忽略大小写
属性input
当正则表达式被匹配时候为相反
属性lastIndex
决定下次匹配从那里开始
属性lastMatch
最后个匹配
属性lastParen
子串匹配时候最后个parenthesized如果有
属性leftContext
最近次匹配前子串
属性multiline
是否在串多行中搜索
属性prototype
允许附加属性到所有对象
属性rightContext
最近次匹配后子串
属性source
模式文本
思路方法
compile思路方法
编译个正则表达式对象
exec思路方法
运行正则表达式匹配
test思路方法
测试正则达式匹配
toSource思路方法
返回个对象文字描述指定对象;你可以使用这个值来建立个新对象不考虑Object.toSource思路方法
toString思路方法
返回串描述指定对象不考虑Object.toString对象
valueOf思路方法
返回指定对角原始值不考虑Object.valueOf思路方法

另外这个对象继承了对象watch和unwatch思路方法
  例子:
  例1、下述举例脚本使用replace思路方法来转换串中单词在替换文本中脚本使用全局 RegExp对象$1和$2属性注意在作为第 2个参数传递给replace思路方法时候RegExp对象$属性

<script LANGUAGE="Javascript1.2">
re = /(\w+)\s(\w+)/;
str = "John Smith";
str=str.replace(re,"$2, $1");
document.write(str)
</script>
显示结果:"Smith, John".
  例2、下述举例脚本中RegExp.input由Change事件处理句柄设置在getInfoexec 思路方法使用RegExp.input值作为它参数注意RegExp预置了$属性

<script LANGUAGE="Javascript1.2">
function getInfo(abc)
{
re = /(\w+)\s(\d+)/;
re.exec(abc.value);
window.alert(RegExp.$1 + ", your age is " + RegExp.$2);
}
</script>
  请输入你姓和年龄输入完后按回车键
  <FORM><INPUT TYPE="TEXT" NAME="NameAge" _disibledevent=>  </HTML>

$1, ..., $9属性
用圆括号括着匹配子串如果有
是RegExp属性
静态只读
在Javascript 1.2, NES 3.0以上版本提供
描述:input是静态属性不是个别正则表达式对象属性你可以使用RegExp.input 访问该属性
能加上圆括号子串数量不受限制但正则表达式对象只能保留最后9 条如果你要访问所有圆括号内匹配字串你可以使用返回
这些属性能用在RegExp.replace思路方法替换后串(输出结果)当使用这种方式时候不用预先考虑RegExp对象下面给出例子当正则表达式中没有包含圆括号时候该脚本解释成$n字面意
(这里n是个正整数)

例如:
下例脚本使用replace 思路方法来交换串中单词位置在替换后文本字串中脚本使用正则表达式RegExp对象$1和$2属性注意:当它们向replace思路方法传递参数时候这里没有考虑 $ 属性
RegExp对象名称
<script LANGUAGE="Javascript1.2">
re = /(\w+)\s(\w+)/;
str = "John Smith";
str=str.replace(re,"$2, $1");
document.write(str)
</script>
显示输出结果为:Smith, John
u/meil/archives/2007/324.html
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: