javascript 正则表达式[任意数字]

ngynwnxp  于 2022-12-25  发布在  Java
关注(0)|答案(5)|浏览(143)

我需要在javascript中测试字符串中的"[任意数字]"。我如何匹配它?
哦,"["和"]"也要搭配。
因此像"[1]"或"[12345]"这样字符串是匹配的。
不匹配:"[23432"或"1]"
例如:

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

我需要替换输入字段名称:"项目[0].名字"到"项目[1].名字"谢谢

7y4bm7vi

7y4bm7vi1#

    • 更新:**针对您更新的问题
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
xwbd5t1u

xwbd5t1u2#

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

vzgqcmou3#

我总是使用下面的正则表达式来检测字符串中的任何类型的数字。到目前为止没有任何问题。

'(([\+\-]*\d*\.*\d+[eE])?([\+\-]*\d*\.*\d+))'

详细内容:

'([\+\-]*\d*\.*\d+)'

使一个(非)十进制数与前面的数字或符号相匹配

'([\+\-]*\d*\.*\d+[eE])?'

来匹配数字前面的指数底数。
如果required前后有括号,可以将它们添加到周围括号的内部或外部:

'(\[([\+\-]*\d*\.*\d+[eE])?([\+\-]*\d*\.*\d+)\])'

事实上,周围的括号是不必要的,但我保留他们更容易与其他表达连接。

pxiryf3j

pxiryf3j4#

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

bvpmtnay5#

您可以使用以下函数查找任意字符串中最大的[number]
它将最大的[number]的值作为Integer返回。

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;
}

演示

下面的演示程序计算每次单击按钮时文本区域中的最大数字。
它允许你在文本区域中进行操作,并使用不同的文本重新测试函数。
x一个一个一个一个x一个一个二个x
另请参见this Fiddle!

相关问题