正则表达式

我需要在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”谢谢

更新:为您更新的问题

 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 

希望这可以帮助!

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

您可以使用以下函数查找任何字符串中的最大[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; } 

DEMO

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

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

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