如何从字符串中获得最小/最大int值

How to get a min/max int value from string?

本文关键字:最大 int 字符串      更新时间:2023-09-26

我有许多元素的页面是id = "item('d{1,})"。如何快速获得('d{1,}) regexp的最小值和最大值的元素id ?

如果浏览器支持,也可以使用querySelectorAll;所有浏览器都应该选择它。IE从8月开始支持。

var elements = document.querySelectorAll("[id^=item]");
var max = null;
var min = null;
for(var i = 0; i < elements.length; i++) {
   var number = elements[i].id.replace(/item/, "");
   if(max == null) {
      max = number;
      min = number;
   }
   else {
      max = (number > max) ? number : max;
      min = (number < min) ? number : min;
   }
}

如果浏览器不支持,你必须这样做:

//assuming that you're looking for div; just replace it with the actual element 
//you're looking for
var elements = document.getElementsByTagName("<div">); 
var max = null;
var min = null;
for(var i = 0; i < elements.length; i++) {
    if(/item'd+/.test(elements[i].id)) {
       var number = elements[i].id.replace(/item/, "");
       if(max == null) {
          max = number;
          min = number;
       }
       else {
          max = (number > max) ? number : max;
          min = (number < min) ? number : min;
       }
    }
}

或者如果你使用jQuery:

var max = null;
var min = null;
jQuery("[id^=item]").each(function() {
    var number = this.id.replace(/item/, "");
    if(max == null) {
       max = number;
       min = number;
    }
    else {
       max = (number > max) ? number : max;
       min = (number < min) ? number : min;
    }
});

使用此命令获取id列表:

$j("[id^=item]").map(function(){ return Number(this.id.substr(4)); });

我不认为jQuery有任何工具来快速获得最小/最大值,但它是相当琐碎的自己写。

根据Vivin的要求提供了琐碎的部分:

var arr = $j("[id^=item]").map(function(){ return Number(this.id.substr(4)); }).sort();
var min = arr[0];
var max = arr[arr.length-1];