判断字符串是否为变位词

检查一个字符串是否是另一个字符串的变位词(不区分大小写,忽略空格、标点符号和特殊字符)。

  • 使用String.prototype.toLowerCase()String.prototype.replace()方法结合适当的正则表达式来去除不必要的字符。
  • 对两个字符串使用String.prototype.split()Array.prototype.sort()Array.prototype.join()方法进行规范化,然后检查它们的规范化形式是否相等。
const isAnagram = (str1, str2) => {
  const normalize = str =>
    str
      .toLowerCase()
      .replace(/[^a-z0-9]/gi, '')
      .split('')
      .sort()
      .join('');
  return normalize(str1) === normalize(str2);
};

isAnagram('iceman', 'cinema'); // true