关于 script 的 new RegExp 和 replace

要修改一个页面的 JS 替换文本规则,结果遇到了一点点麻烦。

我们想替换掉 url 字符串中的图片大小尺寸。

关于 replace 的正常用法:

var str = 'https://ok99.com/wp-content/uploads/2021/04/1-48-355x200.jpg';
newstr = str.replace(/-(\d+)x(\d+)/,'');
alert(newstr)

PS:注意,replace 第一个参数的正则表达式不要加引号。

但是我们要使用 new RegExp 进行操作时就需要注意了,正如 runoob 对 RegExp 的介绍:

注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的:

var re = new RegExp("\\w+");
var re = /\w+/;

所以我们在使用 RegExp 进行操作时需要将表达式进行书写转义,而且正则表达式开头和结尾不需要斜线//:

var str = 'https://ok99.com/wp-content/uploads/2021/04/1-48-355x200.jpg';
var re = new RegExp('-(\\d+)x(\\d+)',"ig");
newstr = str.replace(re,'');
alert(newstr);

猜你喜欢

转载自blog.csdn.net/myarche/article/details/115630716