首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

[真诚]请高手对这个replace()的正则表达式进行祥细解释

2012-11-05 
[真诚求助]请高手对这个replace()的正则表达式进行祥细解释!网页上有5个input文本框,id分别为L1,L2,L3,L4,

[真诚求助]请高手对这个replace()的正则表达式进行祥细解释!
网页上有5个input文本框,id分别为L1,L2,L3,L4,L5,函数中的val值传输的是类似于 http://www.xxx.cn/hhh/H101.asp 这样的字符串值
函数的功能是根据传输过来的val值http://www.xxx.cn/hhh/H101.asp在5个input文本框中分别输入
http://www.xxx.cn/hhh/H102.asp
http://www.xxx.cn/hhh/H103.asp
http://www.xxx.cn/hhh/H104.asp
http://www.xxx.cn/hhh/H105.asp
http://www.xxx.cn/hhh/H106.asp
即实现http://www.xxx.cn/hhh/H101.asp中的H101的数值部分加1 

下面的函数已验过过,没问题,请高手指出下面replace()方法里的祥细解释(一个一个地解释,初学正则表达式,不是很理解),即val.replace(/(\d+)\./,function(str,n){return parseInt(n,10)+i-1+".";})这一句,请一个一个字符解释!
  function fun(val)
  { 
  for(var i=1;i<6;i++)
  {
  var ipt = document.getElementById("L"+i);
  ipt.value = val.replace(/(\d+)\./,function(str,n){
  return parseInt(n,10)+i-1+".";});
  }
  }

[解决办法]
\d匹配数字
+表示匹配一个或多个
\.匹配一个小数点
function(str,n) replace 中的回调函数

上面更好的做法是

JScript code
   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;});          }    }
[解决办法]
把val中数字加"."的部分进行替换.即102.,103.,104.,105.;替换成(102+i-1).这个值额
[解决办法]
探讨
引用:

把val中数字加"."的部分进行替换.即102.,103.,104.,105.;替换成(102+i-1).这个值额


因为val中我可能会传输http://www.xxx.cn/h12/H101.asp这样的值,所以开始时看正则资料说\d是匹配数值,但是hh2也有数字呀,那么要捕捉的字符串岂不是错了?但运行程序它又对,当时真是百思不得其解!现在看来它是用一个点.来确定最后那几个数字,如果没有就肯定出错,对吗?

热点排行