Подтвердить что ты не робот

Регулярное выражение [Любое число]

Мне нужно проверить "[любое число]" в строке в 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" спасибо

4b9b3361

Ответ 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>