Javascript - 如何替换页面内容中的文字
Javascript - How to replace words inside page content
所以我有一个大约 1,000 个单词的列表,如果它们出现在页面上,它们将被替换为某些内容。我试着用正则表达式来做,所以对于每千个单词我都替换了这样的内容:
var pattern = new RegExp("(.*?)([^A-Za-z_/\-]+)("+title+")([^A-Za-z_\./\-]+)(.*?)","ig");
content = content.replace( pattern, function replacer(contents,start,before,value,after,end) {
var key = value.toLowerCase();
但事实证明这种方法真的很慢。另一种方法是将页面内容拆分为单词,然后检查是否有任何部分与任何关键字相同。问题是我有一千个关键词,所以在一个有 10,000 个词的页面上,我必须遍历 10,000 X 1,000 个项目,这可能会使浏览器崩溃。
有谁知道在页面上替换文字的好方法吗?
这很慢,因为对于每个单词,您要再次测试整个内容。最好为任何单词制作一个正则表达式,然后在散列中查找:
// Make your "dictionary" first:
var replacements = {
"replace": "R",
"this": "T",
"etc": "..."
};
var content = "Should replace this with letters.";
var output = content.replace(/\w+/g, function replacer(word) {
return replacements[word.toLowerCase()] || word;
});
console.log(output);
输出为:
Should R T with letters.
所以我有一个大约 1,000 个单词的列表,如果它们出现在页面上,它们将被替换为某些内容。我试着用正则表达式来做,所以对于每千个单词我都替换了这样的内容:
var pattern = new RegExp("(.*?)([^A-Za-z_/\-]+)("+title+")([^A-Za-z_\./\-]+)(.*?)","ig");
content = content.replace( pattern, function replacer(contents,start,before,value,after,end) {
var key = value.toLowerCase();
但事实证明这种方法真的很慢。另一种方法是将页面内容拆分为单词,然后检查是否有任何部分与任何关键字相同。问题是我有一千个关键词,所以在一个有 10,000 个词的页面上,我必须遍历 10,000 X 1,000 个项目,这可能会使浏览器崩溃。
有谁知道在页面上替换文字的好方法吗?
这很慢,因为对于每个单词,您要再次测试整个内容。最好为任何单词制作一个正则表达式,然后在散列中查找:
// Make your "dictionary" first:
var replacements = {
"replace": "R",
"this": "T",
"etc": "..."
};
var content = "Should replace this with letters.";
var output = content.replace(/\w+/g, function replacer(word) {
return replacements[word.toLowerCase()] || word;
});
console.log(output);
输出为:
Should R T with letters.