我有一些旧代码,没有任何注释,它们使用 JavaScript 的方式与我以前使用它的方式不同。下面是对字符串进行数学运算。
if ((toFind > nextOptionText) && (toFind < lookAheadOptionText))
我发现了类似这样的问题 - 基本上表明“a”<“b”:
how exactly do Javascript numeric comparison operators handle strings?
但是在我的示例中,我有一些特殊字符需要与之比较。在我的代码中,上面的参数是:
if (("A" > "+") && ("A" < ">EINFUHRUNG ZUM"))
这等于 TRUE - 对于我来说,我需要它等于 FALSE,但我不是问如何使其为 false,我真的只是想了解编写此代码的开发人员在想什么以及如何做上面的 if 语句有效。
显然我也在处理外语(德语) - 我很确定这段代码是在应用程序成为多语言之前编写的。
如果我应该考虑其他建议,请告诉我(例如使用区域设置或进行不同类型的比较)。
最佳答案
我的快速测试表明,正如预期的那样,此代码的计算结果为 FALSE。
if (("A" > "+") && ("A" < ">EINFUHRUNG ZUM")) {
alert('true')
} else {
alert( 'false')
}
一般来说,比较照常进行according to the character codes ,因此“A”>“>”和“A”>“+”。
要将字符串与非 ASCII 字母进行比较,您可能会发现 this reference有用。
关于javascript 外语字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48104499/