📅  最后修改于: 2023-12-03 14:42:31.962000             🧑  作者: Mango
有时,我们需要从字符串中过滤掉除字母以外的字符。在 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