使用javascript和正则表达式删除图像SRC的左侧部分

使用javascript和正则表达式删除图像SRC的左侧部分,javascript,Javascript,但这并不适用于所有情况。因为它是静态的。仅删除../public部分。道路没有标准。 例如: 它可以是.././公共的,而不是../公共的等等。。。(它可能倾向于左侧)如果要从public关键字(包括它)中删除左侧的所有内容,请使用: str.replace(/.+public/,“”) var str1=“/public/images/pages/contact-685px_06.jpg”; var str2=“/awdawd/awd/public/images/pages/contact-

但这并不适用于所有情况。因为它是静态的。仅删除../public部分。道路没有标准。 例如:
它可以是.././公共的,而不是../公共的等等。。。(它可能倾向于左侧)

如果要从
public
关键字(包括它)中删除左侧的所有内容,请使用:

str.replace(/.+public/,“”)

var str1=“/public/images/pages/contact-685px_06.jpg”;
var str2=“/awdawd/awd/public/images/pages/contact-685px_06.jpg”;
var str3=“偶数/mor3/@#4#%stuff/awdawd/awd/public/images/pages/contact-685px#u 06.jpg”;
console.log(str1.replace(/.+public/,“”));
console.log(str2.replace(/.+public/,'');

控制台日志(str3.replace(/.+public/,'')
如果要从
public
关键字(包括它)中删除左侧的所有内容,请使用:

str.replace(/.+public/,“”)

var str1=“/public/images/pages/contact-685px_06.jpg”;
var str2=“/awdawd/awd/public/images/pages/contact-685px_06.jpg”;
var str3=“偶数/mor3/@#4#%stuff/awdawd/awd/public/images/pages/contact-685px#u 06.jpg”;
console.log(str1.replace(/.+public/,“”));
console.log(str2.replace(/.+public/,'');

控制台日志(str3.replace(/.+public/,'')使用以下方法:

var-imgEl=$('img');
imgEl.attr(“src”,imgEl.attr(“src”)。替换(/^.+public/,“”);
console.log(imgEl.attr(“src”)

使用以下方法:

var-imgEl=$('img');
imgEl.attr(“src”,imgEl.attr(“src”)。替换(/^.+public/,“”);
console.log(imgEl.attr(“src”)

使用正则表达式而不是字符串。您想要的正则表达式是“匹配(点对)子路径,直到找到公共子路径”。它可以这样实现:

$(this).attr("src", $(this).attr("src").replace("../public", ""));
replace
功能中,应用于代码将导致:

regex = /^(?:\.\.\/)+public\//

使用正则表达式而不是字符串。您想要的正则表达式是“匹配(点对)子路径,直到找到公共子路径”。它可以这样实现:

$(this).attr("src", $(this).attr("src").replace("../public", ""));
replace
功能中,应用于代码将导致:

regex = /^(?:\.\.\/)+public\//

为什么不将
*\/
用作regex(捕获并替换图像文件名之前的所有内容:)@Philip您的
RegExp
实际上不起作用。他想删除
public
关键字之前的所有内容,而不是最后一个斜杠
/
@Philip很酷,但这并不是OP想要的:(为什么不使用
*/
作为正则表达式(捕获并替换图像文件名之前的所有内容:)@Philip Your
RegExp
实际上不起作用。他想删除
public
关键字之前的所有内容,而不是最后一个斜杠
/
@Philip很酷,但这并不是OP想要的:(