js字符串比较大小按每个字符的charCode大小进行比较

  js 字符串比较大小

  按每个字符的 charCode 大小进行比较,直到分出大小为止

  demos

   {

      let a = 'a11'
      let b = 'a2'
      console.log(a > b) // false
    }

  a 和 b 比较js字符串大小比较,步骤如下:

  a[0]='a', b[0]='a', 他们的 charCode 相等,所以比较下一项a[1]='1', b[1]='2', 1 的 charCode 是 49, 2 的是 50, 所以 a[1] < b[1]所以 a < b

   console.log('选择' > '努力') // true

  因为 "选" 的 charCode 是 36873,"努" 的 charCode 是 21162

  版本号比较大小

  常见版本号 0.0.1 等,当某些特定情况下,如要进行版本号大小对比。因此有人会采用上述办法来比较。但是会有 bug。

   {

      let v1 = &#39;9.1.21&#39;
      let v2 = &#39;7.1.1.28&#39;
      console.log(v1 > v2) // true
    }
    {
      // v2 实际上是大于 v1
      let v1 = &#39;9.1.21&#39;
      let v2 = &#39;10.1.1.28&#39;
      console.log(v1 > v2) // true
    }

  为了修复此 Bugjs字符串大小比较,我写了一个函数:

<p><pre>// 对比版本号大小
function isBiggerVersion(v1, v2) {
var result = true
var array1 = v1.split('.')
var array2 = v2.split('.')
var isFirstLonger = array1.length >= array2.length
function _bigger(longer, shorter) {

var l = ~~(longer[0] || 0)
var s = ~~(shorter[0] || 0)
if (s >= l) {
  return false
}
if (s 
文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/1633
0 评论
467

发表评论

!