\d匹配数字
+表示匹配一个或多个
\.匹配一个小数点
function(str,n) replace 中的回调函数上面更好的做法是 function fun(val) {
for(var i=1;i <6;i++)
{
var ipt = document.getElementById("L"+i);
ipt.value = val.replace(/(\d+)(?:\.)/g,function(str,n){
return parseInt(n,10)+i-1;});
}
}
+表示匹配一个或多个
\.匹配一个小数点
function(str,n) replace 中的回调函数上面更好的做法是 function fun(val) {
for(var i=1;i <6;i++)
{
var ipt = document.getElementById("L"+i);
ipt.value = val.replace(/(\d+)(?:\.)/g,function(str,n){
return parseInt(n,10)+i-1;});
}
}
那对圆括号是什么意思?
function(str,n)
str和n数值从哪里传过来?
不是很明白!
?:非捕获式匹配
function fun(val) {
for(var i=1;i <6;i++)
{
var ipt = document.getElementById("L"+i);
ipt.value = val.replace(/(\d+)(?:\.)/g,function(m,node,index){
return parseInt(node)+i-1;});
}
}
replace的第二参数如果为function则函数的参数为匹配的字符串
用以上正则匹配则函数的第一个参数是全部匹配字符串如 105. 第二个参数是第一个括号里面的字符串,也就是多个数字,如 105
用第二参数转化为数字,加 i再减 1 ,这个就是你想转的数字,加上 .符号,替换第一参数, 如 105.
那对圆括号是什么意思? 表示你要捕获的对象
function(str,n)
str和n数值从哪里传过来?
不是很明白 ! 这么说吧,str是一个匹配项,如102. 103. 104.
n是捕获的对象,102 每匹配一次就调用一次回调函数,把匹配和捕获的值传进去
str是匹配项没错,不过n也是匹配项,关键是看你用什么匹配,是不是全局,
如果是全局的话n是第二个匹配项,否则,n就是第一个匹配项里面第一个括号里面的匹配项function的参数列表其实也就是 string.search 返回的数组
因为val中我可能会传输http://www.xxx.cn/h12/H101.asp这样的值,所以开始时看正则资料说\d是匹配数值,但是hh2也有数字呀,那么要捕捉的字符串岂不是错了?但运行程序它又对,当时真是百思不得其解!现在看来它是用一个点.来确定最后那几个数字,如果没有就肯定出错,对吗?
例如我写成:function(s1,sd)
/(\d+)\./ 匹配多个数字加一个.符号的字符串,一个以上的数字后面还要加.号才是匹配的function(str,n) 里面的参数名可以改
请问哪里有介绍replace()方法的资料,特别是replace()第二个参数为函数的?
微软的javascript帮助会有baidu上会有