当检索某个文本的时候,我们可能需要一种模式来描述被检索的内容,在这种情况下就可以考虑使用正则表达式。正则表达式可以定义一种模式,这种模式可能是一个简单的字符、也可能是一个非常复杂的字符串,通常被用于解析、格式检查、替换等。
关于正则表达式的具体内容可以参考以下链接,本文只是对JavaScript如何使用正则表达式进行讨论。
在JavaScript中创建正则表达式对象由两种方式。
方式一:直接量语法
<script type="text/javascript">
var reg = /^\w{6,20}$/i;
alert(reg.test("jackfrued"));
alert(reg.test("Hello, world!"));
alert(reg.test("admin"));
</script>
方式二:创建RegExp对象
<script type="text/javascript">
var reg = new RegExp("^\\w{6,20}$", "i");
alert(reg.test("jackfrued"));
alert(reg.test("Hello, world!"));
alert(reg.test("admin"));
</script>
简单的说,JavaScript创建一个正则表达式对象要指定pattern和attributes两个参数。pattern是一个字符串,指定了正则表达式的模式。attributes是一个可选字符串,包含属性“g”、"i"、"m",分别用于指定是否全局匹配、是否区分大小写匹以及是否进行多行匹配。
正则表达式对象的属性和方法
属性:
- global:正则表达式对象是否具有标志g
- ignoreCase:正则表达式对象是否具有标志i
- lastIndex:开始下一次匹配的字符位置
- multiline:正则表达式对象是否具有标志m
- source:正则表达式的源文本
方法:
- compile:编译正则表达式
- exec:检索字符串中指定的值,返回找到的值,并确定其位置
- test:检索字符串中指定的值,返回true或者false
其实,JavaScript中字符串对象的一些方法也支持正则表达式操作,例如:
- search:检索与正则表达式相匹配的值
- match:找到一个或多个正则表达式的匹配
- replace:替换与正则表达式匹配的子串
- split:把字符串分割为字符串数组
下面的链接中列出了常用的正则表达式,供大家参考。
http://deerchao.net/tutorials/regex/common.htm
下面的链接是正则表达式的其他相关资源:
http://www.amazon.com/dp/1449319432
http://www.regular-expressions.info/tutorial.html
http://zh.wikipedia.org/zh-cn/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F