【澳门葡京】JavaScript正则表明式之match函数疏解,split使用介绍集结

效用:使用正则表明式格局对字符串施行查找,并将涵盖查找的结果作为数组再次来到

成效:使用正则说明式格局对字符串施行查找,并将涵盖查找的结果作为数组重临

match 方法
采纳正则表达式情势对字符串实践查找,并将包蕴查找的结果作为数组重临。
stringObj.match(rgExp)
参数
stringObj
必选项。对其展开检索的 String 对象或字符串文字。
rgExp
必选项。为带有正则表达式形式和可用标志的正则表达式对象。也得以是包蕴正则表达式方式和可用标识的变量名或字符串文字。
别的表达与exec同样,区别的是若是match的表明式相称了大局标志g将面世全体相配项,而不用循环,但装有匹配中不会蕴藏子匹配项。
例子1:
function Match德姆o(){ var r, re; // 表明变量。 var s = “The rain in
Spain falls mainly in the plain”; re = /(a)in/ig; //
创制正则表达式格局。 r = s.match(re); // 尝试去相称寻找字符串。
document.write(r); // 重临的数组包涵了具备 “ain”
出现的八个地位卓殊,r[0]、r[1]、r[2]、r[3]。 //
但未有子相配项a。}输出结果:ain,ain,ain,ain
exec 方法
用正则表达式格局在字符串中找找,并赶回该查找结果的第4个值(数组),借使协作失利,重返null。
rgExp.exec(str)
参数
rgExp
必选项。满含正则表明式方式和可用标记的正则表明式对象。
str
必选项。要在其间进行查找的 String 对象或字符串文字。
回去数组包涵:
input:整个被寻觅的字符串的值;
index:相配结果所在的职责(位);
lastInput:下叁遍相称结果的岗位;
arr:结果值,arr[0]全相称结果,arr[1,2…]为表明式内()的子相配,由左至右为1,2…。
【澳门葡京】JavaScript正则表明式之match函数疏解,split使用介绍集结。例子2:

函数格式:stringObj.match(rgExp) stringObj为字符串必选
rgExp为正则表明式必选项

函数格式:stringObj.match(rgExp) stringObj为字符串必选
rgExp为正则表明式必选项

复制代码 代码如下:

重回值:倘若能合作则赶回结果数组,假使不能够相称重返null

再次来到值:假诺能同盟则赶回结果数组,假使不可能协作再次回到null

function RegExpTest(){
var src=” love you!”;
var re = /\w+/g; // 注意g将全文匹配,不加将永生永恒只回去第贰个门户杰出。
var arr;
while((arr = re.exec(src)) !=null){
//exec使arr重回相称的首先个,while循环二回将使re在g功用搜索下一个协作。
document.write(arr.index + “-” + arr.lastIndex + “:” + arr +
“<br/>”);
for(key in arr){
document.write(key + “=>” + arr[key] + “<br/>”);
}
document.write(“<br/>”);
}
}
window.onload = RegExpTest();

复制代码 代码如下:

复制代码 代码如下:

出口结果:
0-1:I //0为index,i所在地点,1为下三个非常所在地方
input=>I love you!
index=>0
lastIndex=>1
0=>I
2-6:love
input=>I love you!
index=>2
lastIndex=>6
0=>love
7-10:you
input=>I love you!
index=>7
lastIndex=>10
0=>you
表明:依照手册,exec只回去相配结果的第三个值,比方上比方果不用while循环,将只回去’I’(固然i空格后的love和you都符合表明式),无论re表达式用不用全局标志g。不过如若为正则表明式设置了全局标志g,exec
从以 lastIndex 的值提醒的地点初始查找。若无设置全局标志,exec 忽略
lastIndex
的值,从字符串的起头地点上马搜求。利用那性子格能够一再调用exec遍历全体相配,等价于match具备g标识。
自然,纵然正则表明式忘记用g,而又用循环(比如:while、for等),exec将每一遍都循环第三个,产生死循环。
exec的出口将包蕴子相称项。
例子3:

<html>
<script language=”javascript” type=”text/javascript”>
//使用正则说明式方式对字符串实行查找,并将含有查找的结果作为数组再次回到
var objStr=new String(“Yue I love you till the end of my life!”);
var
re=//wo(/w+)?/g;//该表明式用来合营贰个以/w代表的字符,第二个字符是o,前面有叁个字符只怕八个字符+表示后面包车型地铁字符相称的次数,全局相称
var
arr=objStr.match(re);//调用match方法相称字符串何况只要存在重临数组,若无结果回到为null
document.write(“匹配前的字符串:”+objStr+”<br>”);//输出相配前的字符串
if(arr!=null){//假诺能相配成功即arr数组不为空,循环输出结果
for(var i=0;i<arr.length;i++){
document.write(“<li>”+arr[i]);
}
}
</script>
</html>

<html>
<script language=”javascript” type=”text/javascript”>
//使用正则表达式情势对字符串实践查找,并将包罗查找的结果作为数组重回
var objStr=new String(“Yue I love you till the end of my life!”);
var
re=//wo(/w+)?/g;//该表明式用来合作贰个以/w代表的字符,第叁个字符是o,前边有三个字符或许四个字符+表示前面的字符匹配的次数,全局相配
var
arr=objStr.match(re);//调用match方法相配字符串何况只要存在重临数组,若无结果再次回到为null
document.write(“相配前的字符串:”+objStr+”<br>”);//输出相配前的字符串
if(arr!=null){//借使能协作成功即arr数组不为空,循环输出结果
for(var i=0;i<arr.length;i++){
document.write(“<li>”+arr[i]);
}
}
</script>
</html>

复制代码 代码如下:

企望大家要好好学习正则表达式,很有用的!

期望大家要好好学习正则表明式,很有用的!

function execDemo(){
var r, re; // 注明变量。
var s = “The rain in Spain falls mainly in the plain”;
re = /[\w]*(ai)n/ig;
r = re.exec(s);
document.write(r + “<br/>”);
for(key in r){
document.write(key + “-” + r[key] + “<br/>”);
}
}
window.onload = execDemo();

函数格式:stringObj.match(rgExp) stringObj为字符串必选 rgExp为…

输出:
rain,ai
input-The rain in Spain falls mainly in the plain
index-4
lastIndex-8
0-rain
1-ai
test 方法
归来二个 Boolean
值,它提出在被搜寻的字符串中是不是合作给出的正则表明式。
rgexp.test(str)
参数
rgexp
必选项。包涵正则表达式格局或可用标识的正则表明式对象。
str
必选项。要在其上测量试验查找的字符串。
说明
test 方法检查字符串是还是不是与提交的正则表明式格局相匹配,借使是则赶回
true,不然就回去 false。
例子4:

复制代码 代码如下:

function TestDemo(re, s){
var s1;
if (re.test(s))
s1 = ” 相配正则式 “;
else
s1 = ” 不相配正则式 “;
return(“‘” + s + “‘” + s1 + “‘”+ re.source + “‘”);
}
window.onload = document.write(TestDemo(/ab/,’cdef’));

出口结果:’cdef’ 不相称正则式 ‘ab’
细心:test()承袭正则表明式的lastIndex属性,表明式在十一分全局标识g的时候须注意。
例子5:

复制代码 代码如下:

function testDemo(){
var r, re; // 注解变量。
var s = “I”;
re = /I/ig; // 创建正则表明式情势。
document.write(re.test(s) + “<br/>”); // 返回 Boolean 结果。
document.write(re.test(s) + “<br/>”);
document.write(re.test(s));
}
testDemo();

出口结果:
true
false
true
当第一遍调用test()的时候,lastIndex指向下三次相称所在地方1,所以第壹次相配不成事,lastIndex重新指向0,等于第一遍又重新相配。下例展现test的lastIndex属性:
例子6:

复制代码 代码如下:

function testDemo(){
var r, re; // 声明变量。
var s = “I”;
re = /I/ig; // 创设正则表明式形式。
document.write(re.test(s) + “<br/>”); // 返回 Boolean 结果。
document.write(re.lastIndex); // 返回 Boolean 结果。
}
testDemo();

输出:
true
1
不留余地办法:将test()的lastIndex属性每便重复指向0,re.lastIndex = 0;

search 方法
归来与正则表达式查找内容特别的率先个子字符串的地方(偏移位)。
stringObj.search(rgExp)
参数
stringObj
必选项。要在其上进展搜寻的 String 对象或字符串文字。
rgExp
必选项。满含正则表明式方式和可用标记的正则说明式对象。
证实:要是找到则赶回子字符至开端处的偏移位,不然重返-1。
例子6:

复制代码 代码如下:

function SearchDemo(){
var r, re; // 申明变量。
var s = “The rain in Spain falls mainly in the plain.”;
re = /falls/i; // 创立正则表达式形式。
re2 = /tom/i;
r = s.search(re); // 查找字符串。
r2 = s.search(re2);
return(“r:” + r + “;r2:” + r2); // 返回 Boolean 结果。
}
document.write(SearchDemo());

输出:r:18;r2:-1
replace 方法
回去依据正则表明式实行文字替换后的字符串的复制。
stringObj.replace(rgExp, replaceText)
参数
stringObj
必选项。要实行该替换的 String 对象或字符串文字。该字符串不会被 replace
方法修改。
rgExp
必选项。为带有正则表明式形式或可用标识的正则表达式对象。也得以是 String
对象或文字。要是 rgExp
不是正则表明式对象,它将被转变为字符串,并开展准确的索求;不要品味将字符串转化为正则表达式。
replaceText
必选项。是贰个String 对象或字符串文字,对于stringObj 中各类相配 rgExp
中的地点都用该对象所包涵的文字加以替换。在 Jscript 5.5
或更新版本中,replaceText 参数也能够是回去替换文本的函数。
说明
replace 方法的结果是贰个完了了点名替换的 stringObj
对象的复制。意思为合营的项进行点名替换,另外不变作为StringObj的风貌重临。
ECMAScript v3 鲜明,replace() 方法的参数 replacement
可以是函数实际不是字符串。在这种状态下,各样相配都调用该函数,它回到的字符串将作为替换文本使用。该函数的率先个参数是合营情势的字符串。接下来的参数是与形式中的子表明式相配的字符串,能够有
0 个或多少个那样的参数。接下来的参数是一个整数,注明了合营在 stringObject
中冒出的地方。末了三个参数是 stringObject
自身。结果为将每一相称的子字符串替换为函数调用的相应重回值的字符串值。函数作参能够拓展尤其复杂的操作。
例子7:

复制代码 代码如下:

function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; //
表明华氏温度大概方式有:123F或123.4F。注意,这里用了g方式
return(s.replace
(test,
function(Regstr,$1,$2,$3,newstrObj) {
return((“<br/>” + Regstr +”<br/>” + ($1-32) * 51%) + “C”
+”<br/>” + //以下两行开始展览沟通
$2 +”<br/>” + $3 +”<br/>” + newstrObj +”<br/>” );
}
)
);
}
document.write(f2c(“Water: 32.2F and Oil: 20.30F.”));

出口结果:
沃特er: //不与正则相配的字符,按原字符输出
32.2F //与正则相相称的第二个字符串的原字符串 Regstr
0.一千0000000000142C
//与正则相相称的第多个字符串的首先身长形式相配的交替结果 $1
.2
//与正则相相配的首先个字符串的第叁个子情势匹配项的交替结果,这里大家平昔不将它替换
$2
7 //与正则相相配的第一个字符串的第一身长相配出现的偏移量 $3
Water: 32.2F and Oil: 20.30F. //原字符串 newstrObj
and Oil: //不与正则相称的字符
20.30F //与正则相相称的第一个字符串的原字符串
-5.85C //与正则相匹配的第二个字符串的率先身长形式与协作的交替结果
.30
//与正则相相配的首个字符串的第3个子形式匹配项的交替结果,这里大家尚无将它替换
22 //与正则相相配的第一个字符串的率先身长相配出现的偏移量
Water: 32.2F and Oil: 20.30F. //原字符串
. //不与正则相配的字符
下面的函数参数我们一切用到了。在实际中,大家只须用将xxF替换为xxC,遵照供给,大家不要写那样多参数。
例子8:

复制代码 代码如下:

function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; //
表明华氏温度或然情势有:123F或123.4F
return(s.replace
(test,
function(strObj,$1) {
return((($1-32) * 1/2) + “C”);
}
)
);
}
document.write(f2c(“Water: 32.2F and Oil: 20.30F.”));

输出:Water: 0.10000000000000142C and Oil: -5.85C.
更加多的使用:
例子9:

复制代码 代码如下:

function f2c(s) {
var test = /([\d]{4})-([\d]{1,2})-([\d]{1,2})/;
return(s.replace
(test,
function($0,$1,$2,$3) {
return($2 +”/” + $1);
}
)
);
}
document.write(f2c(“today: 2011-03-29”));

输出:today: 03/2011
split 方法
将三个字符串分割为子字符串,然后将结果作为字符串数组再次来到。
stringObj.split([separator[, limit]])
参数
stringObj
必选项。要被解释的 String 对象或文字。该对象不会被 split 方法修改。
separator
可选项。字符串或 正则公布式
对象,它标志了分隔字符串时使用的是贰个照旧多少个字符。假诺马虎该选拔,重返包罗全部字符串的单一元素数组。
limit
可选项。该值用来限制重返数组中的成分个数。
说明
split 方法的结果是一个字符串数组,在 stingObj 中各样出现 separator
的任务都要举办疏解。separator 不作为任何数组成分的部分重临。
例子10:

复制代码 代码如下:

function SplitDemo(){
var s, ss;
var s = “The rain in Spain falls mainly in the plain.”;
// 正则表明式,用不分大不写的s实行分隔。
ss = s.split(/s/i);
return(ss);
}
document.write(SplitDemo());

输出:The rain in ,pain fall, mainly in the plain.

js正则表达式之exec()方法、match()方法以及search()方法

先看代码:

var sToMatch = “test, Tes, tst, tset, Test, Tesyt, sTes”;
var reEs = /es/gi;
alert(reEs.exec(sToMatch));
alert(sToMatch.match(reEs));
alert(sToMatch.search(reEs));

八个弹出框内容如下:

澳门葡京 1

澳门葡京 2

澳门葡京 3

结果分析如下:

1、RegExp的exec()方法,有贰个字符串参数,再次来到一个数组,数组的首先个条约是首先个相当;其余的是反向引用。所以率先个再次回到的结果是第一个非常的值es(不区分轻重缓急写)。

2、String对象有三个match()方法,它回到叁个涵盖在字符串中保有相称的数目。这一个措施调用string对象,同时传给它多个RegExp对象。所以第四个弹出语句再次来到的是兼具符合正则表明式的数组。

澳门葡京 ,3、search()的字符串方法与indexOf()有个别类似,但是它采用一个RegExp对象而非仅仅叁个子字符串。search()方法再次回到第三个相配值的职位。所以第三处弹出的是“1”,即第二个字符就十分了。注意的是search()方法不辅助全局相称正规表明式(带参数g)。

你只怕感兴趣的稿子:

  • JavaScript
    String.replace函数参数实例证实
  • 关于JS字符串函数String.replace()
  • js正则表达式之replace函数用法
  • js中字符替换函数String.replace()使用本领
  • javascript中应用replaceAll()函数完毕字符替换的主意
  • javascript中字符串替换函数replace()方法与c# 、vb
    替换有有个别例外
  • JSP中的字符替换函数 str_replace()
    实现!
  • javascript中的replace函数(带注释demo)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website