Javascript 除非某个值是引用文本的一部分,否则如何删除该值的所有实例?

Javascript 除非某个值是引用文本的一部分,否则如何删除该值的所有实例?,javascript,regex,webkit,Javascript,Regex,Webkit,使用正则表达式,我希望删除某个值的所有实例,除非找到该值时该值是引用文本的一部分 例如,如果我想删除word book,除非它位于引号中,并且我有以下文本: telephone book computer "i read a book" keyboard book 如何使用正则表达式使其显示为: telephone computer "i read a book" keyboard WebKit JavaScript正则表达式是否可以使用string.replace?迭代并生成新字符串。跟踪

使用正则表达式,我希望删除某个值的所有实例,除非找到该值时该值是引用文本的一部分

例如,如果我想删除word book,除非它位于引号中,并且我有以下文本:

telephone book computer "i read a book" keyboard book
如何使用正则表达式使其显示为:

telephone computer "i read a book" keyboard

WebKit JavaScript正则表达式是否可以使用string.replace?

迭代并生成新字符串。跟踪您找到的上一个报价是开始还是结束。如果这本书在开头引用之后,请不要将其删除。

您可以通过回调来执行此操作。():

或者借助前瞻性技巧如():


最后一个选项仅在引号总是关闭的情况下有效,对于长字符串可能无效。

Webkit JavaScript与Firefox JavaScript有什么不同?具体来说,我希望它在Webkit中有效。我不是100%确定细节,但我一直在读到不同软件中有不同的正则表达式引擎,它们都有不同的功能级别。这正是我想要的。谢谢!:)
result = str.replace(/\bbook\b\s*|("[^"]*")/g, function(m, quotes){ return quotes ? quotes: '' });
result = str.replace(/\bbook\b\s*(?=[^"]*(?:"[^"]*"[^"]*)*$)/g, '');