我正在使用 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/