如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用

时间:2015-03-12 18:00:17

标签: javascript regex node.js

抱歉!我无法想到更好的问题标题

我的问题是:我是一个javascript ...脚本,从数据库中读取。现在,这个脚本有各种各样的ifs,whiles,函数调用等。在执行脚本之前,我想替换一些特定的函数名,所以我需要在脚本中进行替换以查找该单词。我的问题是,当该单词不是预期的函数调用,而是包含在更宽的字符串中的文本时,它仍然被替换。

让我举一个例子来说明一点:

var actualFunction = function(){
  return 1;
}

console.log(myfunction);

var s = "I was talking about myfunction with my colleagues...";

在这个例子中,我想要替换" myfunction"当用作功能(或对象)时,但不要替换" myfunction"当它在另一个字符串内。期望的结果将是:

var actualFunction = function(){
  return 1;
}

console.log(actualFunction);

var s = "I was talking about myfunction with my colleagues...";

所以我只想替换" console.log(myfunction);"使用" console.log(actualFunction&#34 ;,并将文本留在" s"变量中。

find方法会发现两次出现" myfunction"但它必须认识到第二次出现在一个较长的字符串中,并且不管它。

我希望自己明白:)并感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我设法用正则表达式来做,检查“单词”是否在单引号或双引号内,如果是,是一个字符串,我不替换,如果没有,该单词被替换。我知道这不太理想,但效果很好。感谢所有人:)