如何比较包含XX.XX.XXXX.XXXX格式的数字的javascript字符串

How to compare javascript string that contain numeric in format of XX.XX.XXXX.XXXX

本文关键字:XX XXXX 格式 数字 字符串 javascript 包含 何比较 比较      更新时间:2023-09-26

我在javascript中有2个字符串,包含代表文件版本的数字。

。e

var str1 = "11.11.1111.1111"
var str2 = "11.22.3333.5555"

如何在它们之间执行数值比较?我想检查str1 > str2

只要str1和str2保证具有相同的长度和格式,就执行str1 > str2。字符串比较是按字典顺序进行的(比较两者的第一个字符,第二个字符…并返回第一个差值的值),对于两个长度相等的数字/类似数字的字符串,可以给出您想要的结果。

如果它们不能保证相同,尝试用.拆分,将每个字符串部分转换为int,并逐个比较它们,直到找到差异。

你可以选择:

var str1 = '11.11.1111.1111'
   ,str2 = '11.22.3333.5555'
   ,compare = str1.split('.')
               .map(function(a) {
                    return +a > +(this.splice(0,1));
                },
                str2.split('.'))
              .reduce(function(a,b){return a||b;});
 //=> compare now: false