javascript - 删除javascript中的全 Angular 和半 Angular 字符

标签 javascript regex encoding

我的数据库不支持全 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/

相关文章:

javascript - 在下拉列表中定义变量失败

javascript - 有人可以向其中注入(inject)恶意代码吗?

php函数array_key_exists和正则表达式

mysql匹配字母/数字字段与字母字段不重复

java - 在 IntelliJ IDEA 中执行的 Maven Selenium WebDriver 项目中出现编码警告

java - 为什么在 java 6 和 java 7 中获取字符 ®(U+00AE) 不同?

python - 如何从 Python 脚本中更改环境变量 LANG?

javascript - 通过 Put 上传到 S3 时获得有趣的白色方 block

javascript - 我应该用什么来代替 ng-repeater

python - 如何解析这个逗号分隔值列表