我需要两个比较字符串来查看它们是否是相同的值,两个字符串都是日语。这个检查似乎失败了,我认为这是JavaScript和UTF-8的一些缺点。是否应该为此成功?我怎样才能让它发挥作用? JavaScript可以转换为\x{57fc}
之类的字符串来执行比较吗?
var foo = '郵便番号',
bar = '郵便番号';
if(foo == bar){
console.log('they are the same');
}
看起来这实际上工作正常,故障是骨干验证的一个更大的问题。谢谢你的回答。
答案 0 :(得分:2)
您忘记了字符串上的引号!
在打开浏览器控制台的情况下运行当前代码,由于缺少引号,您将看到ReferenceError(解释器会认为郵便番号
是标识符,而不是字符串)。
用合适的引号包装你的字符串,它只是工作,JavaScript可以正常处理UTF-8:
var foo = '郵便番号',
bar = '郵便番号';
if(foo == bar){
console.log('they are the same');
}
关于你的第二个问题,你可以使用'\u57fc'
,但通常你不需要;它与文字'埼'
相同。
答案 1 :(得分:1)
可能尝试(foo === bar),两个等号和3个等号的功能略有不同,有时可能会出现问题。不确定它会起作用,但它应该。您是否将日文字符括在引号中?
答案 2 :(得分:0)
您的代码似乎运行得很好,但必须添加引号:
var foo = "\u90F5\u4FBF\u756A\u53F7",
bar = "郵便番号";
if(foo === bar){
console.log('they are the same');
}
\ x用于regular expression但无法在JavaScript中使用,\ u语法有效:
var foo = /\u90F5\u4FBF\u756A\u53F7/,
bar = "\u90F5便番号";
if(foo.test(bar)){
console.log('they are the same');
}