📜  javascript 只保留字符串中的字母 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:31.962000             🧑  作者: Mango

JavaScript 只保留字符串中的字母

有时,我们需要从字符串中过滤掉除字母以外的字符。在 JavaScript 中,这可以通过使用正则表达式和 replace() 方法实现。

以下是一个例子,展示如何从字符串中只保留字母:

const str = "Hello, World! 123";
const onlyLetters = str.replace(/[^a-zA-Z]/g, "");
console.log(onlyLetters); // 输出 "HelloWorld"

在上面的代码中,我们首先声明一个字符串 str,其中包含一些字母和数字。接下来,我们使用正则表达式 /[^a-zA-Z]/g 来匹配所有非字母字符(大小写无关)。这个正则表达式的含义是:“匹配所有不是 a-z 或 A-Z 的字符”。

最后,我们使用 replace() 方法来替换所有匹配的字符为空字符串,返回一个只包含字母的新字符串。

注:正则表达式中的 /g 修饰符表示全局匹配,即匹配字符串中所有符合条件的字符。如果不加 /g,则只匹配第一个符合条件的字符。

以上是使用正则表达式过滤字符串中非字母字符的一种方法,还有其他实现方案,如使用 ASCII 码表。

const str = "Hello, World! 123";
let onlyLetters = "";
for (let i = 0; i < str.length; i++) {
  const charCode = str.charCodeAt(i);
  if ((charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122)) {
    onlyLetters += str.charAt(i);
  }
}
console.log(onlyLetters); // 输出 "HelloWorld"

这里我们使用了 charCodeAt() 方法获取字符串中字符的 ASCII 码值,并通过比较范围来判断其是否为字母。在满足条件时,我们将字符添加到新字符串 onlyLetters 中。

无论哪种方法,都可以很容易地在 JavaScript 中过滤掉字符串中的非字母字符。

参考资料:MDN