【问题标题】:javascript string comparison in a foreign language外语中的javascript字符串比较
【发布时间】:2018-06-14 17:29:13
【问题描述】:

我有一些没有任何 cmets 的旧代码,它们使用 javascript 的方式与我以前使用它的方式不同。下面是对字符串做数学运算。

if ((toFind > nextOptionText) && (toFind < lookAheadOptionText))

我发现了类似这样的问题 - 基本上说“a”

how exactly do Javascript numeric comparison operators handle strings?

但是,在我的示例中,我有一些特殊字符与之进行比较。在我的代码中,上面的参数是:

if (("A" > "+") && ("A" < ">EINFUHRUNG ZUM"))

这等于 TRUE - 就我而言,我需要它等于 FALSE,但我不是在问如何使它为假,我真的只是想了解编写此代码的开发人员在想什么以及如何上面的 if 语句有效。

显然我还要处理一门外语(德语) - 我很确定这段代码是在应用程序变为多语言之前编写的。
如果有其他建议需要我研究,请告诉我(例如,使用区域设置或进行不同类型的比较)。

【问题讨论】:

  • 编辑中的if 语句将评估为false,而不是true。您可以发布示例代码来显示您所看到的行为吗?

标签: javascript


【解决方案1】:

我的快速测试显示此代码的计算结果为 FALSE,正如预期的那样。

if (("A" > "+") && ("A" < ">EINFUHRUNG ZUM")) {
    alert('true')
} else {
    alert( 'false') 
}

一般来说,比较照常进行according to the character codes,因此“A”>“>”和“A”>“+”。

要将字符串与非 ASCII 字母进行比较,您可能会发现 this reference 很有用。

【讨论】:

  • 我搞砸了我原来的变量。有故障。我更新了问题。
  • @webdad3,它没有太大变化:只要“标准”符号(您的字符串中有“>”)是第一个字符,“A”(或任何其他字母)将比整个字符串“更大”。
  • 您的资源对我理解我的问题非常有帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 2021-05-06
  • 2014-12-02
  • 1970-01-01
相关资源
最近更新 更多