Регулярное выражение [Любое число]
Мне нужно проверить "[любое число]" в строке в javascript. как бы я совпадал?
О, "[" и "]" также необходимо сопоставить.
поэтому строка типа "[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" to "items [1].firstname"
спасибо
Ответы
Ответ 1
ОБНОВЛЕНИЕ: для вашего обновленного вопроса
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
Надеюсь, это поможет!
Ответ 2
if("123".search(/^\d+$/) >= 0){
// its a number
}
Ответ 3
var mask = /^\d+$/;
if ( myString.exec(mask) ){
/* That a number */
}
Ответ 4
Вы можете использовать следующую функцию, чтобы найти самую большую [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
Следующая демо подсчитывает наибольшее количество в вашем текстовом поле каждый раз, когда вы нажимаете кнопку.
Это позволяет вам играть с текстовым полем и повторно тестировать функцию с помощью другого текста.
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));
});
<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>