有没有一种简单的方法可以使用 jquery/javascript 或 PHP 删除字符串中所有重复的单词(不包括第一个单词)?
Ex(使用 Javascript):
var text = 'You know that. I know that. They might know';
strikeoutRepeatedFunction(text);
结果:你知道的。我知道 那个。他们可能知道。
谢谢
最佳答案
你可以这样做,
- 使用
split(' ')
拆分字符串,它将按空格拆分。 - 现在使用
map()
遍历它们并将唯一的单词存储在数组中 - 在重复的情况下返回由
del
包裹的字符串 标签否则返回字符串本身。 - 为避免大小写问题,在比较时将字符串转换为小写,使用
toLowerCase()
为此。 - 使用
join(' ')
合并数组
var text = 'You know that. I know that. They might know';
function strikeoutRepeatedFunction(t) {
var words = [];
return t.split(' ').map(function(v) {
if (words.indexOf(v.toLowerCase()) === -1)
words.push(v.toLowerCase());
else
return '<del>' + v + '</del>';
return v;
}).join(' ');
}
document.write(strikeoutRepeatedFunction(text));
有时 .
在字符串中可能会导致问题,避免使用
var text = 'You know that. I know that. They might know. that you';
function strikeoutRepeatedFunction(t) {
var words = [];
return t.split(' ').map(function(v) {
if (words.indexOf(v.replace(/^\.+|\.+$/,'').toLowerCase()) === -1)
words.push(v.replace(/^\.+|\.+$/,'').toLowerCase());
else
return '<del>' + v + '</del>';
return v;
}).join(' ');
}
document.write(strikeoutRepeatedFunction(text));
关于javascript - 使用 jquery、javascript 或 PHP 删除所有重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884545/