用jquery查找并替换正则表达式

时间:2014-07-23 15:55:01

标签: jquery regex replace find

我正在处理两个查询字符串模式: str='Notebook!!2'str='Notebook+HP+14-d028!!2!!583304'

我需要更换其中的任何数字" !! N !!" 重要的是我通过cookie收到这个分隔符。 这就是我想要的......

qstr='Notebook!!2' 
//qstr='Notebook+HP+14-d028!!2!!583304'
str=urldecode(qstr);
d=$.cookie('d');
new_str=str.replace(/d*d/g,"d1d");
alert(new_str);

我正在使用jquery-1.9.1。

预期的输出是“笔记本电脑!! 1' ' Notebook + HP + 14-d028 !! 1 !! 583304',按照上述示例

我正在使用jquery来处理其他事情,这就是我要求它的原因。

任何提示?非常感谢。

2 个答案:

答案 0 :(得分:1)

var new_str = str.replace(/!!\d+!!/g, "");

答案 1 :(得分:0)

正则表达式解决方案:

p='Notebook+HP+14-d028!!10!!583304';
H='!!';
r=/^(.*)!{2}([0-9]+)!{2}([0-9]+)$/;
r_to="$1!!1!!$3";
//var a=p.match(r);
var a=p.replace(r,r_to);
alert(a);

旧学校解决方案......

//str='Notebook!!2' 
str='Notebook+HP+14-d028!!2!!583304'
hash=$.cookie('hash'); //'!!'
i=str.indexOf(hash);
times=str.match(new RegExp(hash,'g')).length;
x=str.substring(0,i+hash.length);
q=x+'1';
if(times>=hash.length*2){
    ii=str.lastIndexOf(hash);
    l=str.length;
    y=str.substring(ii+hash.length,l);
    q=q+hash+y;
}
alert(q);