【问题标题】:Javascript Alphanumeric String ComparisonJavascript 字母数字字符串比较
【发布时间】:2014-09-13 17:14:39
【问题描述】:

我有一个字符串'X1'、'X2'、'X3'、'S1'、'S2'、'S3'等的列表。我想做下面的比较

var string = INPUT STRING;
if( string > 'X10' ){
    DO THIS
}else{
    DO THAT
}

在这种情况下,如果输入字符串是“X8”,那么我的代码将返回 X8 IS GREATER than X10。如果有办法让我真正获得 X10 > X8?

【问题讨论】:

  • 比较X10Y8 的预期结果是什么?
  • 我将比较以相同字母开头的字符串。
  • 在这种情况下,您需要执行@minitech 建议的操作。

标签: javascript string-comparison alphanumeric


【解决方案1】:

您可以将其拆分为字母和数字部分。假设字母部分只有一个字符,

var alpha = string.charAt(0);
var num = string.substring(1) | 0; // | 0 to cast to integer

if (alpha > 'X' && num > 10) {
    …

【讨论】:

    【解决方案2】:

    如果您希望对字母数字字符串进行自然排序或比较,可以尝试使用localeCompare() 方法。

    它分别为小于、等于或大于的结果输出 -1、0 或 1。它还提供了一些有趣的选项。例如,要获得自然的字母数字排序 (x10 numeric: true 选项。为了在比较字符串时也使大小写不敏感,您还可以传递sensitivity: 'base' 选项。这将比较两个字符串 valueVALUE 相等,忽略大小写。

    以下是同时使用这两个选项的示例:

    leftString.localeCompare(rightString, undefined, { numeric: true, sensitivity: 'base'})
    // With this you would get following results
    // X8 < X10
    // X8 === x8
    

    希望这是有用的。干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-26
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2014-08-23
      相关资源
      最近更新 更多