js 正则表达式

js正则表达式
exec 方法

用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。

rgExp.exec(str)
参数

rgExp

必选项。包含正则表达式模式和可用标志的正则表达式对象。

str

必选项。要在其中执行查找的 String 对象或字符串文字。
说明

如果 exec 方法没有找到匹配,则它返回 null。如果它找到匹配,则 exec 方法返回一个数组,并且更新全局 RegExp 对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志 (g) 的 match 方法。

如果为正则表达式设置了全局标志,exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。

exec 方法返回的数组有三个属性,分别是 input、index 和 lastIndex。Input 属性包含了整个被查找的字符串。Index 属性中包含了整个被查找字符串中被匹配的子字符串的位置。LastIndex 属性中包含了匹配中最后一个字符的下一个位置。
示例

下面的例子举例说明了 exec 方法的用法:


代码

function RegExpTest(){
var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
if (ver >= 5.5){ // 测试 JScript 的版本。
var src = "The rain in Spain falls mainly in the plain.";
var re = /\w+/g; // 创建正则表达式模式。
var arr;
while ((arr = re.exec(src)) != null)
document.write(arr.index + "-" + arr.lastIndex + "\t" + arr);
}
else{
alert("请使用 JScript 的更新版本");
}
}


match 方法

使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。

stringObj.match(rgExp)

function MatchDemo(){
var r, re; // 声明变量。
var s = "The rain in Spain falls mainly in the plain";
re = /ain/ig; // 创建正则表达式模式。
r = s.match(re); // 尝试去匹配搜索字符串。
return(r); // 返回的数组包含了所有 "ain"
// 出现的四个匹配。
}
search 方法

返回与正则表达式查找内容匹配的第一个子字符串的位置。

stringObj.search(rgExp)
参数

stringObj

必选项。要在其上进行查找的 String 对象或字符串文字。

rgExp

必选项。包含正则表达式模式和可用标志的正则表达式对象。
说明

search 方法指明是否存在相应的匹配。如果找到一个匹配,search 方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1。
示例

下面的示例演示了 search 方法的用法。

function SearchDemo(){ var r, re; // 声明变量。

var s = "The rain in Spain falls mainly in the plain."; re = /falls/i;

// 创建正则表达式模式。

r = s.search(re);

// 查找字符串。 return(r);

// 返回 Boolean 结果。}

test 方法

返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。

rgexp.test(str)
参数

rgexp

必选项。包含正则表达式模式或可用标志的正则表达式对象。

str

必选项。要在其上测试查找的字符串。
说明

test 方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。

全局 RegExp 对象的属性不由 test 方法来修改。
示例

下面的例子举例说明了 test 方法的用法:

function TestDemo(re, s){ var s1; // 声明变量。

// 检查字符串是否存在正则表达式。 if (re.test(s))

// 测试是否存在。 s1 = " contains "; // s 包含模式。

else s1 = " does not contain "; // s 不包含模式。

return("'" + s + "'" + s1 + "'"+ re.source + "'"); // 返回字符串。}

split 方法

将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator[, limit]])
参数

stringObj

必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。

separator

可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。

limit

可选项。该值用来限制返回数组中的元素个数。
说明

split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。
示例

下面的示例演示了 split 方法的用法。

function SplitDemo(){ var s, ss;

var s = "The rain in Spain falls mainly in the plain."; // 在每个空格字符处进行分解。

ss = s.split(" "); return(ss);}

split 方法

将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator[, limit]])
参数

stringObj

必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。

separator

可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。

limit

可选项。该值用来限制返回数组中的元素个数。
说明

split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。
示例

下面的示例演示了 split 方法的用法。

function SplitDemo(){ var s, ss; var s = "The rain in Spain falls mainly in the plain.";

// 在每个空格字符处进行分解。

ss = s.split(" "); return(ss);}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值