nfv*_*loo 5 javascript jquery currency character-encoding
使用jQuery和formatCurrency扩展如下:
$(function() {
$(".currency").blur(function(){ formatCurrencyInput(this) });
});
function formatCurrencyInput(input) {
if($(input).val() != '') {
if(isNumeric($(input).val())) {
$(input).formatCurrency(null,{groupDigits:false,roundToDecimalPlace:2,symbol:'£'});
$(input).css('border-color', '');
}
else {
$(input).css('border-color', '#FFCCCC');
}
}
}
Run Code Online (Sandbox Code Playgroud)
具有"货币"类的所有文本输入都从45 =>£45.00转换为例如.
奇怪的是,如果formatCurrencyInput函数在该部分中定义,它可以正常工作.如果我将函数外部化为.js文件,它将返回£45.00(注意Â字符).我想这是一个字符编码问题,但我该如何解决这个问题呢?
尝试:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
...
Run Code Online (Sandbox Code Playgroud)
您也可以尝试更改£为£。
如果您在 JavaScript 文件中使用任何非 Ascii 字符,则应确保服务器为其发送正确的 HTTP 标头,以识别字符编码。其他方法,例如用于引用文件的元素charset中的参数,或依赖于浏览器以某种方式默认编码(例如,来自引用的 HTML 文档),可靠性较低。script
但是,如果字符串文字中只有一个非 Ascii 字符,最简单的方法就是对其进行转义。井号 \xe2\x80\x9c\xc2\xa3\xe2\x80\x9d U+00A3 可以在字符串文字内转义为 或\\xA3as \\u00A3。