正则表达式[任意数字]

时间:2011-02-08 10:21:59

标签: javascript jquery regex

我需要在javascript中测试字符串中的“[any number]”。我怎么配它?

哦,“[”和“]”也需要匹配。

所以像“[1]”或“[12345]”这样的字符串就是匹配。

不匹配:“[23432”或“1]”

例如:

$('.form .section .parent').find('input.text').each(function(index){
      $(this).attr("name", $(this).attr("name").replace("[current]", "['"+index+"']"));
});

我需要将输入字段名称替换为:“items [0] .firstname”改为“items [1] .firstname” 感谢

4 个答案:

答案 0 :(得分:54)

更新:了解您的更新问题

variable.match(/\[[0-9]+\]/);

试试这个:

variable.match(/[0-9]+/);    // for unsigned integers
variable.match(/[-0-9]+/);   // for signed integers
variable.match(/[-.0-9]+/);  // for signed float numbers

希望这有帮助!

答案 1 :(得分:3)

if("123".search(/^\d+$/) >= 0){
   // its a number
}

答案 2 :(得分:0)

var mask = /^\d+$/;
if ( myString.exec(mask) ){
   /* That's a number */
}

答案 3 :(得分:0)

您可以使用以下函数查找任何字符串中最大的[number]

它返回最大[number]的值作为整数。

var biggestNumber = function(str) {
    var pattern = /\[([0-9]+)\]/g, match, biggest = 0;

    while ((match = pattern.exec(str)) !== null) {
        if (match.index === pattern.lastIndex) {
            pattern.lastIndex++;
        }
        match[1] = parseInt(match[1]);
        if(biggest < match[1]) {
            biggest = match[1];
        }
    }
    return biggest;
}

样本

以下演示计算每次单击按钮时textarea中的最大数字。

它允许您使用textarea并使用不同的文本重新测试该函数。

&#13;
&#13;
var biggestNumber = function(str) {
    var pattern = /\[([0-9]+)\]/g, match, biggest = 0;

    while ((match = pattern.exec(str)) !== null) {
        if (match.index === pattern.lastIndex) {
            pattern.lastIndex++;
        }
        match[1] = parseInt(match[1]);
        if(biggest < match[1]) {
            biggest = match[1];
        }
    }
    return biggest;
}

document.getElementById("myButton").addEventListener("click", function() {
    alert(biggestNumber(document.getElementById("myTextArea").value));
});
&#13;
<div>
    <textarea rows="6" cols="50" id="myTextArea">
this is a test [1] also this [2] is a test
and again [18] this is a test. 
items[14].items[29].firstname too is a test!
items[4].firstname too is a test!
    </textarea>
</div>

<div>
   <button id="myButton">Try me</button>
</div>
&#13;
&#13;
&#13;

另见this Fiddle