📌  相关文章
📜  如何使用 JavaScript 从字符串中删除所有非 ASCII字符?(1)

📅  最后修改于: 2023-12-03 15:08:19.962000             🧑  作者: Mango

如何使用 JavaScript 从字符串中删除所有非 ASCII 字符?

在 JavaScript 中,我们可以使用正则表达式和字符串方法来删除所有非 ASCII 字符。以下是一个简单的示例:

let str = "hello 你好 world";
let newStr = str.replace(/[^\x00-\x7F]/g, "");
console.log(newStr); // 输出: "hello  world"

上述代码使用 replace() 方法和正则表达式 [^\x00-\x7F] 来删除所有非 ASCII 字符。该正则表达式匹配所有不在 ASCII 范围内的字符。

我们也可以将该代码片段封装成一个函数:

function removeNonAscii(str) {
  return str.replace(/[^\x00-\x7F]/g, "");
}

let str = "hello 你好 world";
let newStr = removeNonAscii(str);
console.log(newStr); // 输出: "hello  world"

此外,我们还可以使用 ES6 中的 unicode property escapes,其语法为 \p{ASCII},来匹配所有 ASCII 字符。

let str = "hello 你好 world";
let newStr = str.replace(/[^\p{ASCII}]/gu, "");
console.log(newStr); // 输出: "hello  world"

对于只需要删除字符串中的空格和非 ASCII 字符的情况,我们还可以使用以下代码:

let str = "   hello 你好 world  ";
let newStr = str.trim().replace(/[^\x00-\x7F]/g, "");
console.log(newStr); // 输出: "hello  world"

该代码首先使用 trim() 方法删除字符串两侧的空格,然后使用 replace() 方法和正则表达式 [^\x00-\x7F] 删除所有非 ASCII 字符。

总之,以上是几种从字符串中删除所有非 ASCII 字符的常用方法。在实际开发中,我们可以根据具体需求选择适合的方法。