我正在尝试图像src的匹配部分,例如:
图像/ preview_1.jpg
我想改变_1来说_6
所以我想尝试匹配_1
function ClickImgOf(filename, itemid){
var re = new RegExp("(.+)_[0-9])\\.(gif|jpg|jpg|ashx|png)", "g");
return filename.replace(re, "$1_"+itemid+".$2");
}
我的功能是......
我知道只有0-9匹配,但我只是试图让某些东西起作用,即便没有。
可以说我现在对Regex了解不多。
答案 0 :(得分:3)
您的模式中有一个不匹配的)
括号。是什么让你失望?看起来不错。如果您的问题能够匹配2位或更多位数字,请尝试[0-9]+
。
function ClickImgOf(filename, itemid){
var re = new RegExp("(.+)_([0-9]+)\\.(gif|jpg|jpg|ashx|png)", "g");
return filename.replace(re, "$1_"+itemid+".$3");
}
答案 1 :(得分:1)
试试这个:
(.+_)[0-9]+(\.(?:gif|jpg|jpg|ashx|png))
然后你可以这样做:
return filename.replace(re, "$1" + itemid + "$2");
另外,下载并安装:http://www.ultrapico.com/ExpressoDownload.htm
使用正则表达式时非常宝贵。
答案 2 :(得分:1)
您不需要使用正则表达式对象构建正则表达式,使用文字更容易,性能也更好。
function ClickImgOf(filename, itemid) {
return filename.replace(/_\d+\.(gif|jpg|jpg|ashx|png)$/g, '_'+itemid+'.$2');
}