在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='*']一样,*可以是任何东西。我试图实现的是,只转义*字段中出现的单引号和&符号('&),而不使用regex替换来转义封闭的单引号。

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

stringToBeReplaced.replace(/((['&])(?!]))/g,'\$1'));

非常感谢您的帮助。

您可以这样尝试:

(?<!=)(['&])(?!])

(?<!=)=的负向后看

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

(?!])关闭]的负面展望

替换为:

和捕获组

演示:

https://regex101.com/r/CQbwtF/5

最新更新