从JavaScript字符串中删除零宽度空格字符

我采取用户输入(JS代码)和执行(处理)他们实时显示一些输出。

有时候代码有那么零宽的空间,这真的很奇怪。我不知道用户是如何输入的。示例 – “($”。length === 3

我需要能够从我的JS代码中删除该字符。我怎么这样做?或者也许是一些其他方式来执行JS代码,以便浏览器不会考虑零宽度空格字符?

Unicode具有以下零宽度字符:

> U 200B零宽度空间
> U 200C零宽非联合Unicode码点
> U 200D零宽度joiner Unicode码点
> U FEFF零宽度不间断空格Unicode码点

要在JavaScript中将其从字符串中删除,您可以使用一个简单的正则表达式:

var userInput = 'a\u200Bb\u200Cc\u200Dd\uFEFFe';
console.log(userInput.length); // 9
var result = userInput.replace(/[\u200B-\u200D\uFEFF]/g, '');
console.log(result.length); // 5

请注意,有更多的符号可能不可见。一些ASCII’s control characters,例如。

翻译自:https://stackoverflow.com/questions/11305797/remove-zero-width-space-characters-from-a-javascript-string

转载注明原文:从JavaScript字符串中删除零宽度空格字符