使用regEx

时间:2016-01-26 15:17:13

标签: javascript regex

您好,我一直在努力寻找和替换宽度&使用以下网址的图像高度

http://res.cloudinary.com/chathura-rupasinghe/image/upload/c_fill,h_1024,w_768/v1453555296/manhattan_stater.jpg

当你注意到h_1024时,w_768讲述了当我从cdn请求时图像应该如何缩放。根据我的要求,这应该是可以改变的脚本ex resize(url,{500,500})应该跟随url转换为

http://res.cloudinary.com/chathura-rupasinghe/image/upload/c_fill,h_500,w_500/v1453555296/manhattan_stater.jpg

这是我的代码到目前为止它是不完美的有任何方法可以解决这个问题

var url = "http://res.cloudinary.com/chathura-rupasinghe/image/upload/c_fill,h_1024,w_768/v1453555296/manhattan_stater.jpg";



var reg1 = /(\h_.*?\,)/gi;


 url = url.replace(reg1,"h_500,");

console.log(url);

1 个答案:

答案 0 :(得分:0)

您可以在此处使用更具体的正则表达式(不会替换h_1 in http://ite.com/h_2/upload/c_fill,h_1024,w_580):

/(\/upload\/[^\/]*\bh_)\d+(,w_)\d+/

并替换为"$1" + my_height + "$2" + my_width

请参阅regex demo



var mywidth = "800";
var myheight = "600";

var re = /(\/upload\/[^\/]*\bh_)\d+(,w_)\d+/; 
var str = 'http://res.cloudinary.com/chathura-rupasinghe/image/upload/c_fill,h_1024,w_768/v1453555296/manhattan_stater.jpg';
var subst = '$1' + myheight + '$2' + mywidth; 
var result = str.replace(re, subst);
document.write(result);




正则表达式匹配:

  • (\/upload\/[^\/]*\bh_) - 第1组(替换字符串中以$1反向引用)与文字字符序列/upload/\/upload\/)匹配,后跟零或更多/以外的字符(带有[^\/]*),然后是带有文字序列\b的单词边界h_
  • \d+ - 一个或多个数字
  • (,w_) - 第2组(在替换字符串中以$2反向引用)与逗号匹配,后跟字符后跟下划线
  • \d+ - 一个或多个数字