簡體   English   中英

如果字符串與正則表達式匹配,則替換,如果不匹配則添加變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM