Javascript 正则表达式未按预期替换

Javascript 正则表达式未按预期替换,javascript,node.js,regex,Javascript,Node.js,Regex,我有一个用于构建vue项目的节点脚本。我需要从以下位置更新一些vue源链接: :src="\'./src/img/\' 到 我的代码是: const regEx6=/:src=“”。\/src\/img/gi; 常量regEx7=/^:src=(?:“(?:\\\\'.\/src\/img\/\\\\\\\\\\\\\\'.\.\/src\/img\/)\)?$/gi; if(regEx6.test(fileContents | | regEx7.test(fileContents

我有一个用于构建vue项目的节点脚本。我需要从以下位置更新一些vue源链接:

:src="\'./src/img/\'

我的代码是:

const regEx6=/:src=“”。\/src\/img/gi;
常量regEx7=/^:src=(?:“(?:\\\\'.\/src\/img\/\\\\\\\\\\\\\\'.\.\/src\/img\/)\)?$/gi;
if(regEx6.test(fileContents | | regEx7.test(fileContents))){
console.log(
`Vue指令:找到src。将尝试更新链接。${warning}`
);
}
如果(
regEx6.test(文件内容)||
regEx7.test(文件内容)
) {
让distFile=fileContents
.replace(regEx6,`:src=“”./img`)
.replace(regEx7,`src=“\\'./img/\\'`);
使用

const regEx7=/:src=“\\'.\.\/src\/img\/\'/gi;
.替换(regEx7,“src=“\\'./img/\\'”);
请参阅。无需在正则表达式中转义

解释

--------------------------------------------------------------------------------
  :src="                   ':src="'
--------------------------------------------------------------------------------
  \\                       '\'
--------------------------------------------------------------------------------
  '                        '\''
--------------------------------------------------------------------------------
  \.                       '.'
--------------------------------------------------------------------------------
  \/                       '/'
--------------------------------------------------------------------------------
  src                      'src'
--------------------------------------------------------------------------------
  \/                       '/'
--------------------------------------------------------------------------------
  img                      'img'
--------------------------------------------------------------------------------
  \/                       '/'
--------------------------------------------------------------------------------
  \\                       '\'
--------------------------------------------------------------------------------
  '                        '\''
使用

const regEx7=/:src=“\\'.\.\/src\/img\/\'/gi;
.替换(regEx7,“src=“\\'./img/\\'”);
请参阅。无需在正则表达式中转义

解释

--------------------------------------------------------------------------------
  :src="                   ':src="'
--------------------------------------------------------------------------------
  \\                       '\'
--------------------------------------------------------------------------------
  '                        '\''
--------------------------------------------------------------------------------
  \.                       '.'
--------------------------------------------------------------------------------
  \/                       '/'
--------------------------------------------------------------------------------
  src                      'src'
--------------------------------------------------------------------------------
  \/                       '/'
--------------------------------------------------------------------------------
  img                      'img'
--------------------------------------------------------------------------------
  \/                       '/'
--------------------------------------------------------------------------------
  \\                       '\'
--------------------------------------------------------------------------------
  '                        '\''

你的括号在第一个
if
中放错了位置。它应该像第二个
if
一样。你缺少了第二个
if
末尾的
}
。为什么你需要两个条件相同的
if
语句?只需将
控制台.log
放在第二个控制台的开头。似乎使用带有全局ctrl+r的像样的项目IDE比编写逻辑要快得多……如果
,则括号放错了第一个
。它应该类似于第二个
if
。您缺少第二个
if
末尾的
}
。为什么需要两个条件相同的
if
语句?只需将
控制台.log
放在第二个控制台的开头。似乎使用带有全局ctrl+r的体面项目IDE比编写逻辑要快得多…谢谢。Regex不是我的专长。我找到了一个在线发电机,它完成了这个任务。但不如人类:)谢谢。Regex不是我的专长。我找到了一个在线发电机,它完成了这个任务。但不如人类:)