1、什么叫正则表达式?
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
比如:我们会用?和*来帮助查找文件,?字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。
2、正则表达式有什么作用?
A、测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
B、替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
C、根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
3、如何建立正则表达式?
在JScript中,用一对正斜杠(//)来确定正则表达式的边界;
正则表达式模式 (expression) 均存储在RegExp 对象的Pattern 属性中。
正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
特殊字符的匹配,需要在特殊字符前加上反斜杠(\);特殊字符包括:
\$ | \( 和 \) | \* | \+ | \. | \[ | \? | \\ | \^ | \{ | \| |
4、正则表达式中操作符的优先权顺序(由高到低):
操作符 | 描述 |
\ | 转义符 |
(), (?:), (?=), [] | 圆括号和方括号 |
*, +, ?, {n}, {n,}, {n,m} | 限定符 |
^, $, \anymetacharacter | 位置和顺序 |
| | “或”操作 |
5、在js中如何使用正则表达式?
RegExp是JavaScript中的正则表达式对象,利用它可以完成字符串匹配的各种操作。获得一个RegExp对象可以有两种方式:
var objRegExp=/pattern*/[flag]
//或者
var objRegExp=new RegExp("pattern" [,"flag"]);
其中pattern是要匹配的模式,flag表示搜索模式,有两个可选参数,分别是g和i。g表示全局搜索;i表示忽略大小写,默认情况下是大小写敏感的。例如:
/jack/ig
new RegExp("jack","ig");
都表示全局匹配文本中的“jack”单词,并且忽略大小写。
使用这两种创建方式的效果完全一样,可以直接使用。第一种方式甚至不需要引用变量,而直接把正则表达式当作对象来使用,例如:
/jack/ig.test(sourceString);
其中test就是正则表达式对象的一个方法。
与字符串相关的操作中,有三个方法需要用到正则表达式:
(1)string.search(regularExpression)
其中string是要处理的字符串,regularExpression是匹配模式。该方法在string中查找指定的模式,如果找到,则返回它的第一个字符的索引位置,否则返回-1。例如:
<script language="JavaScript" type="text/javascript">
var strXml="<author>jack</author>";
var i=strXml.search(/jack/);
alert(i);
</script>
这段代码的最后结果显示为8(索引位置从0开始)。和indexOf方法不同,该方法接收的是一个正则表达式,而indexOf只能接收一个字符串。但两者的行为是类似的。
(2)string.replace(regularExpression,replaceString)
其中regularExpression是要查找的模式,replaceString是要替换匹配模式的字符串。regularExpression也可以用普通字符串,但那样只能替换第一个出现的匹配,之后的匹配则被忽略。使用正则表达式后可以使用全局模式来实现整个替换。替换后原有字符串不发生变化,而是返回一个新的字符串。例如:在实际开发中经常要删除一段文本中的HTML标记,以获取纯文本,可以使用如下代码实现。
<script language="JavaScript" type="text/javascript">
//定义函数用于删除文本中的Html标记
function stripTags(s)
{
return s.replace(/<\/?[^>]+>/gi, '');
}
var str=stripTags("<author>jack</author>");
alert(str);
</script>
最后,将得到去掉Html标记后的文本“jack”。
(3)string.match(regularExpression)
该方法根据regularExpression正则表达式模式查找字符串string中的匹配字符项,将结果以数组形式返回。该数组有3个属性值,与exec方法返回的数组属性相同。若没有任何匹配,返回null。
6、下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
详细使用方法可参考:http://blog.csdn.net/dh19573681/archive/2009/08/21/4471438.aspx
详见附件
资料参考:http://blog.csdn.net/grueclan/archive/2008/03/06/2153960.aspx