gpt4 book ai didi

JavaScript 正则表达式

转载 作者:行者123 更新时间:2023-11-28 20:52:49 25 4
gpt4 key购买 nike

这是我的字符串

str = "asd;images30/127ef-30-30-wm.jpg;59 | asd;images30/127ef-30-30-wm.jpg;60 | "

正则表达式是

var re = new RegExp(".*?;.*?;"+$(this).parent().attr("id")+" | ","ig");

替换函数是

str.replace(re,'');

我实际上想从字符串中删除 asd;images30/127ef-30-30-wm.jpg;59 | 。以上正则表达式返回

 | asd;images30/127ef-30-30-wm.jpg;60 | 

而预期是

asd;images30/127ef-30-30-wm.jpg;60 | 

最佳答案

您必须将 RegExp 调用中的 | 替换为 \\|。这是必要的,因为单个反斜杠将被忽略(如果随后的字符已在转义序列中使用,例如,如果它是 n,则这两个将成为换行符转义序列,但对于不是转义序列的一部分,单个反斜杠将被忽略),附加的反斜杠将导致单个反斜杠出现。然后可以在正则表达式中使用它来指示您正在转义文字管道符号,而不是内置正则表达式“备用”符号。

请注意,如果 jQuery 中的 id 可能是非数字,您可能还需要转义该值。您可以使用类似 this 的函数来转义它。 .

要在此处硬编码 ID(根据您的示例,该值显然是 59),如果删除双反斜杠,它不会删除第一个管道:

str = "asd;images30/127ef-30-30-wm.jpg;59 | asd;images30/127ef-30-30-wm.jpg;60 | ";
var re = new RegExp(".*?;.*?;"+59+" \\| ","ig");
str = str.replace(re,'');

alert(str)

关于JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com