我的数据库不支持全 Angular 和半 Angular 字符。所以我需要在插入之前转义它们。
我认为范围是 U+FF00 到 U+FFFF
所以我的函数读取
function escapeZeroWidth(userInput){
return (userInput ? userInput.replace(/[\uFF00-\uFFFF]/g, '') : userInput);
}
但这并没有按预期工作(不是转义字符)。
代码有问题吗?
最佳答案
我认为是 FF00 - FFFE(但这并不重要)。我会将其更改为类似这样的内容,这样您就不会丢失 ASCII 字符:
return userInput.replace(/[\uFF00-\uFFFE]/g, function (char) {
if (char >= '\uFF00' && char <= '\uFF5E') {
return String.fromCharCode(
' '.charCodeAt(0) +
(char.charCodeAt(0) - '\uFF00'.charCodeAt(0)));
}
return '';
});
但是当你说它不起作用时,也许你还必须处理全 Angular 以外的其他字符。
关于javascript - 删除javascript中的全 Angular 和半 Angular 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20654380/