我需要在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” 感谢
答案 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并使用不同的文本重新测试该函数。
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;
另见this Fiddle!