javascript - 如何用 JavaScript 中的其他内容替换输入中的非 Ascii 字符

标签 javascript html encoding ascii non-ascii-characters

我正在使用 WebSocket 为 JavaScript 游戏实现聊天功能。我想用其他字母替换用户在输入文本字段中写入的非 ascii 字符。 Ä 被替换为 a,而 Ö 被替换为 o。并且所有其他非 ascii 字符都应替换为“”。

var message = document.getElementById("write_message").value;
message = message.replace(/ä/g, "a").replace(/ö/g, "o");
message = message.replace(/^[\000-\177]/g, "");
ws.send("M" + message);

我尝试了上述代码的更简单版本,但不知何故所有用户输入似乎都被替换了。甚至是 ascii 字符。我从另一个 Stackoverflow 问题中找到了正则表达式。

最佳答案

您必须知道支持的 html 页面的字符集。根据它是 unicode 还是某些 8 位字符器,使用 \uzzzz\xzz 来匹配 z 代表十六进制数字的字符。

示例:message = message.replace(/^[\u0080-\uffff]/g, ""); ascii-fies unicode 文本。

关于javascript - 如何用 JavaScript 中的其他内容替换输入中的非 Ascii 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16062446/

相关文章:

php - 选中另一个时取消选中一个复选框

javascript - 西类牙语特殊字符如 á ó 显示时显示困惑或垃圾值

javascript - 扩展 Highmaps 副作用

javascript - 主干模型 : initialize vs. 构造函数

html - 导航显示顺序错误

php - 数据库驱动的选择框在提交时为空

php - mysqli 没有将字符集设置为 utf8mb4

ruby-on-rails - Ruby on Rails - 来自 Paypal 的参数 : invalid byte sequence in utf-8

javascript - Bootstrap 模态字段未扩展

javascript - 从包含数组属性的基础对象有选择地创建一个新的对象数组