JavaScript中的正则表达式替换,用于转义单引号中的特殊字符

JavaScript中的正则表达式替换,用于转义单引号中的特殊字符,javascript,regex,Javascript,Regex,在我的JavaScript文件中,我有一个变量,它采用如下值 stringToBeReplaced = input[name='Wanna Be Startin' Somethin''] stringToBeReplaced = input[name='They Don't Care About Us'] stringToBeReplaced = input[name='Workin' Day & Night'] 模式总是像input[name='*']with*可以是任何东西。

在我的JavaScript文件中,我有一个变量,它采用如下值

stringToBeReplaced = input[name='Wanna Be Startin' Somethin'']

stringToBeReplaced = input[name='They Don't Care About Us']

stringToBeReplaced = input[name='Workin' Day & Night']
模式总是像
input[name='*']
with*可以是任何东西。 我试图实现的是只转义*字段中出现的单引号和符号('&),而不使用regex replace转义封闭的单引号

到目前为止,我形成的正则表达式如下所示,仍然悬而未决的是忽略上述模式中的第一个单引号。i、 e前面有=号的单引号

stringToBeReplaced.replace(/((['&])(?!\]))/g,'\\$1'));
非常感谢您的帮助。

您可以这样尝试:

(?<!=)(['&])(?!])
(?在字符类中选择所需字符并在组中捕获

(?!])
结账时的负面展望
]

替换为:

\
和捕获的组

演示:


如果您展示一个关于旧值是什么的示例,以及该特定示例的期望输出是什么的示例,这将非常有帮助。另外,您是否可以进一步解释一下整个上下文。这些字符串(看起来是CSS选择器)从何而来?为什么您显然使用
name
属性作为一种title或description?在您拥有整个
输入[name=]
字符串之前,您能在更早的时间点进行转义吗?为什么您认为需要转义
&
?基本上jQuery.find方法在我们以前使用jQuery 1.8的应用程序中失败(我不确定这是否与现在使用的升级版jQuery 1.11有关).&不是必需的,只是包含了regex以支持多个特殊字符。让jQuery.find开始工作,然后修补regexI,我同意这将是最好的解决方案,但是这涉及到巨大框架中的大量代码更改,这超出了我们现在的范围:-(感谢您对其进行剖析。不过,这是一个php正则表达式,似乎对JS无效