删除 JavaScript 中的全角和半角字符

Remove fullwidth and half width charactors in javascript

本文关键字:半角 字符 删除 JavaScript      更新时间:2023-09-26

我的数据库不支持全角和半角字符。所以我需要在插入之前逃离它们。

我相信范围是 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 '';
});

但是当你说它不起作用时,也许你还必须处理全角以外的其他字符。