[英]If string matches regex replace, if not add variable
我正在使用javascript將字符串附加到變量(將特定的圖像大小添加到移動設備上的滑塊)。
這是我正在使用的行。
var newsrc = src.substring(0, src.lastIndexOf(".")) + "-420x320" + src.substring(src.lastIndexOf("."));
但是,在某些情況下,圖像src具有另一種尺寸,在這種情況下,我想刪除該尺寸並添加上面的尺寸。
示例:兩者
http://domain.com/10001428289243jpg-700x703.jpg and
http://domain.com/10001428289243jpg.jpg
需要是:
http://domain.com/10001428289243jpg-420x320.jpg
在這種情況下,您將使用什么?
您所需要做的就是構建一個帶有可選部分的模式:
src = src.replace(/(?:-\d+x\d+)?\.jpg$/, '-420x320.jpg');
哪里(?:-\\d+x\\d+)?
是一個可選的非捕獲組, $
是字符串末尾的錨點。
我會堅持使用與-#x#
模式匹配的快速替換並將其替換為空白。
var newsrc = src.replace(/(-\\d+x\\d+)/,"").substring(0, src.lastIndexOf(".")) + "-420x320" + src.substring(src.lastIndexOf("."));
鏈接: http : //jsfiddle.net/9u8m9oob/1/
您也可以使用以下方式實現相同的目的:
var str1='http://domain.com/10001428289243jpg.jpg';
var str2='http://domain.com/10001428289243jpg-700x703.jpg';
var regex=/^(http:\/\/domain\.com\/)(\d+jpg)(.)*(\.jpg)$/g;
var result= str1.replace(regex,"$1$2-420x320$4");
console.log(result); // gives output as http://domain.com/10001428289243jpg-420x320.jpg
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.