javascript - 使用 jquery、javascript 或 PHP 删除所有重复的单词

标签 javascript php jquery

有没有一种简单的方法可以使用 jquery/javascript 或 PHP 删除字符串中所有重复的单词(不包括第一个单词)?

Ex(使用 Javascript):

var text = 'You know that. I know that. They might know';

strikeoutRepeatedFunction(text);

结果:你知道的。我知道 那个。他们可能知道

谢谢

最佳答案

你可以这样做,

  1. 使用 split(' ') 拆分字符串,它将按空格拆分。
  2. 现在使用 map() 遍历它们并将唯一的单词存储在数组中
  3. 在重复的情况下返回由 del 包裹的字符串 标签否则返回字符串本身。
  4. 为避免大小写问题,在比较时将字符串转换为小写,使用 toLowerCase() 为此。
  5. 使用 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/

相关文章:

javascript - 通过 chrome 扩展将变量传递到当前选项卡

javascript - 如何将 jQuery 函数应用于具有相同 ID 的所有元素?

Javascript 键码在 firefox 中不起作用,但在 chrome 中运行良好

php - 将 JavaScript 变量发送到 PHP 变量的安全性

php - 如何创建必须连接四个表才能提取所需数据的 SQL 查询?

javascript - 像 gmail 聊天一样弹出和弹出

javascript - 创建自定义输入字段

php - 从 Woocommerce 中的特定产品单页隐藏相关产品

jquery - 使用 JQuery 将 XML 图像路径转换为图像

javascript - 将 ajax 错误和成功函数替换为传递给父函数的替代函数