JavaScript学习(八)

JavaScript正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

 RegExp对象用于规定在文本中的检索。

当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp就是这种模式。

简单的模式可以是一个单独是字符,更复杂的模式包括了更多的字符,并用于解析、格式检查、替换等等。

您可以规定字符串的检索位置,以及要检索的字符类型,等等。

正则表达式可用于所有文本搜索和文本替换的操作。

语法:

/pattern/modifiers;

实例:

var patt = /w3school/i;

实例解析:

/w3school/i是一个正则表达式。

w3school是一个模式(用于检索)。

i是一个修饰符(搜索不区分大小写)。

使用字符串方法:

在JavaScript中,正则表达式通常用于两个字符串方法:search()和replace()。

search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

定义RegExp

RegExp对象用于存储检索模式。

通过new关键词来定义RegExp对象,以下代码定义了名为patt1的RegExp对象,其模式是“e”:
var patt1 = new RegExp("e");

当您使用该RegExp对象在一个字符串检索时,将寻找到的是字符“e”。

RegExp对象的方法

RegExp对象有三个方法: test()、exec()、compile()。

test()

test()方法检索字符串的指定值。返回值是true或false。

例子:

</pre><pre class="html" name="code">var patt1 = new RegExp("e");
document.write(patt1.test("The best things in life are free"));

由于该字符串中存在字幕“e”,以上代码的输出结果将是:true。

exec()

exec()方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配失败,则返回null

例子1:

var patt1 = new RegExp("e");
document.write(patt1.exec("The best things in life are frees"));

由于该字符串中存在字母“e“,以上代码的输出将是:e。

例子2:

您可以向RegExp对象添加第二个参数,以设定检索。例如,如果需要找到某个字符的所有存在,则可以使用“g”参数(“global”)。

请参考RegExp对象参考手册,学习关于如何修改搜索模式的完整信息。

在使用“g”参数时,exec()的工作原理如下:

1)找到第一个“e”,并存储其位置。

2)如果再次运行exec(),则从存储的位置开始搜索,并找到下一个“e”,并存储其位置。

var patt1 = new RegExp("e","g");
do
{
result = patt1.exec("The best thing in life are free");
document.write(result);
}
while(result != null);

由于这个字符串中有6个“e”字母,代码的输出将是:eeeeeenull

compile()

compile()方法用于改变RegExp。

compile()既可以改变检索模式,也可以添加或删除第二个参数。

例子:

<strong>var patt1 = new RegExp("e");
document.write(patt1.test("The best things in life are free"));
patt1.compile("d");
document.write(patt1.test("The best things in life are free"));</strong>

由于字符串中存在“e”,而没有“d”,以上代码的输出是:truefalse

注:完整的RegExp对象参考手册
































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值