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

  js 字符串比较大小

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

  demos

   {

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

  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。

   {

  1. let v1 = &#39;9.1.21&#39;
  2. let v2 = &#39;7.1.1.28&#39;
  3. console.log(v1 > v2) // true
  4. }
  5. {
  6. // v2 实际上是大于 v1
  7. let v1 = &#39;9.1.21&#39;
  8. let v2 = &#39;10.1.1.28&#39;
  9. console.log(v1 > v2) // true
  10. }

  为了修复此 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) {

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

发表评论

!