A想要将全宽数字(例如123)转换为半宽数字(例如123)。我发现代码在PHP中执行此操作但在JS中没有。有人可以帮忙吗?感谢。
function fullWidthNumConvert(fullWidthNum){
// Magic here....
....
return halfWidthNum;
}
答案 0 :(得分:6)
使用.replace()
执行字符串regular expression以匹配相关字符。 callback in .replace()
's second argument可以获取匹配字符的字符代码并从中减去以获取标准数字的字符代码,然后将其转换回字符串。
function fullWidthNumConvert(fullWidthNum){
return fullWidthNum.replace(/[\uFF10-\uFF19]/g, function(m) {
return String.fromCharCode(m.charCodeAt(0) - 0xfee0);
});
}
console.log(fullWidthNumConvert("0123456789"));
console.log(fullWidthNumConvert("Or in the middle of other text: 123. Thank you."));

答案 1 :(得分:1)
使用String Normalize MDN和"NFKC"
作为Unicode规范化表格
const str = "150721";
console.log(str.normalize('NFKC')); // 150721
https://www.unicode.org/charts/normalization/chart_Number-Decimal.html