Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果字符串与正则表达式匹配,则替换,如果不匹配,则添加变量_Javascript_Regex_String - Fatal编程技术网

Javascript 如果字符串与正则表达式匹配,则替换,如果不匹配,则添加变量

Javascript 如果字符串与正则表达式匹配,则替换,如果不匹配,则添加变量,javascript,regex,string,Javascript,Regex,String,我正在使用javascript将字符串附加到变量(在移动设备上向滑块添加特定的图像大小) 这是我用的电话线 var newsrc = src.substring(0, src.lastIndexOf(".")) + "-420x320" + src.substring(src.lastIndexOf(".")); 但是,在某些情况下,图像src有另一个大小,在本例中,我希望删除该大小并添加上面的大小 例如: 两者 需要: http://domain.com/10001428289243jpg

我正在使用javascript将字符串附加到变量(在移动设备上向滑块添加特定的图像大小)

这是我用的电话线

var newsrc = src.substring(0, src.lastIndexOf(".")) + "-420x320" + src.substring(src.lastIndexOf("."));
但是,在某些情况下,图像src有另一个大小,在本例中,我希望删除该大小并添加上面的大小

例如: 两者

需要:

 http://domain.com/10001428289243jpg-420x320.jpg

在这种情况下,您将使用什么?

您所需要的只是构建一个带有可选部分的模式:

src = src.replace(/(?:-\d+x\d+)?\.jpg$/, '-420x320.jpg');

其中,
(?:-\d+x\d+)
是可选的非捕获组,
$
是字符串结尾的锚点。

您所需要的只是构建一个带有可选部分的模式:

src = src.replace(/(?:-\d+x\d+)?\.jpg$/, '-420x320.jpg');

其中,
(?:-\d+x\d+)
是可选的非捕获组,
$
是字符串结尾的锚点。

您所需要的只是构建一个带有可选部分的模式:

src = src.replace(/(?:-\d+x\d+)?\.jpg$/, '-420x320.jpg');

其中,
(?:-\d+x\d+)
是可选的非捕获组,
$
是字符串结尾的锚点。

您所需要的只是构建一个带有可选部分的模式:

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(“.”))

我会选择一个与
-#x#
模式匹配的快速替换,并将其替换为空白


var newsrc=src.replace(/(-d+x\d+/,”).substring(0,src.lastIndexOf(“.”)+“-420x320”+src.substring(src.lastIndexOf(“.”))

我会选择一个与
-#x#
模式匹配的快速替换,并将其替换为空白


var newsrc=src.replace(/(-d+x\d+/,”).substring(0,src.lastIndexOf(“.”)+“-420x320”+src.substring(src.lastIndexOf(“.”))

我会选择一个与
-#x#
模式匹配的快速替换,并将其替换为空白

var newsrc=src.replace(/(-d+x\d+/,”).substring(0,src.lastIndexOf(“.”)+“-420x320”+src.substring(src.lastIndexOf(“.”))

小提琴链接:

您也可以通过以下方式实现相同的目标:

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
小提琴链接:

您也可以通过以下方式实现相同的目标:

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
小提琴链接:

您也可以通过以下方式实现相同的目标:

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
小提琴链接:

您也可以通过以下方式实现相同的目标:

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


我喜欢这一点,因为它还添加了所需的维度,作为替换的一部分。除了限于.jpg扩展之外,您的工作完全符合我的要求。如何使其独立于扩展?如果您对文件类型不挑剔,可以尝试
/(?:-\d+x\d+)\.[a-zA-Z]+$/
。这将匹配
,后跟小写/大写字母的任意组合,后跟字符串的结尾。将
jpg'
替换为(?jpg | png | gif |任意内容)。您还可以考虑在ReGEXP之后添加<代码> i '/c>选项忽略字符实例),以允许上/下字符字符。优秀的,保罗和HBP两种解决方案的组合适合我的需要。我将此标记为已解决。我喜欢它,因为它还添加了所需的维度,作为替换的一部分。您的工作完全符合我的要求,但仅限于.jpg扩展。如何使其独立于扩展?如果您对文件类型不挑剔,可以尝试
/(?:-\d+x\d+)\.[a-zA-Z]+$/
。这将匹配
,后跟小写/大写字母的任意组合,后跟字符串的结尾。将
jpg'
替换为(?jpg | png | gif |任意内容)。您还可以考虑在ReGEXP之后添加<代码> i '/c>选项忽略字符实例),以允许上/下字符字符。优秀的,保罗和HBP两种解决方案的组合适合我的需要。我将此标记为已解决。我喜欢它,因为它还添加了所需的维度,作为替换的一部分。您的工作完全符合我的要求,但仅限于.jpg扩展。如何使其独立于扩展?如果您对文件类型不挑剔,可以尝试
/(?:-\d+x\d+)\.[a-zA-Z]+$/
。这将匹配
,后跟小写/大写字母的任意组合,后跟字符串的结尾。将
jpg'
替换为(?jpg | png | gif |任意内容)。您还可以考虑在ReGEXP之后添加<代码> i '/c>选项忽略字符实例),以允许上/下字符字符。优秀的,保罗和HBP两种解决方案的组合适合我的需要。我将此标记为已解决。我喜欢它,因为它还添加了所需的维度,作为替换的一部分。您的工作完全符合我的要求,但仅限于.jpg扩展。如何使其独立于扩展?如果您对文件类型不挑剔,可以尝试
/(?:-\d+x\d+)\.[a-zA-Z]+$/
。这将匹配
,后跟小写/大写字母的任意组合,后跟字符串的结尾。将
jpg'
替换为(?jpg | png | gif |任意内容)。您还可以考虑在ReGEXP之后添加<代码> i '/c>选项忽略字符实例),以允许上/下字符字符。优秀的,保罗和HBP两种解决方案的组合适合我的需要。我将此标记为已解决。您的在字符串末尾添加420x320大小,而不替换另一个您的在字符串末尾添加420x320大小,而不替换另一个您的在字符串末尾添加420x320大小,而不替换另一个您的在字符串末尾添加420x320大小,而不替换另一个