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

Разбор строки из строки в javascript

В javascript, что является лучшим способом для синтаксического анализа INT из строки, которая начинается с буквы (например, "test [123]" )? Мне нужно что-то, что будет работать для примера ниже.

Мой JS:

$(document).ready(function() {

    $(':input').change( function() {
        id = parseInt($(this).attr("id"));  //fails for the data below
        alert(id);
    });
}

Мой сгенерированный HTML:

<select id="attribute[123]">
<!-- various options -->
</select>
<select id="attribute[456]">
<!-- various options -->
</select>

Спасибо!

4b9b3361

Ответ 1

Вы можете использовать регулярное выражение для соответствия числу:

$(this).attr("id").match(/\d+/)

Ответ 2

parseInt(input.replace(/[^0-9-]/,""),10)

Ответ 3

Возможно, просто отфильтруйте строку с помощью .replace(). Если есть другой способ, я не знаю об этом:

parseInt("attribute[123]".replace("attribute[", "").replace("]", "")));

Возможно, вы можете использовать некоторое Regex, чтобы поместить это только в один .replace(), но я не очень хорошо знаком с Regex, поэтому я просто сделал это дважды.

Проверьте это в своем браузере с помощью

javascript:alert(parseInt("attribute[123]".replace("attribute[", "").replace("]", "")));

В случае предупреждения 123.