Разбор Int из строки в JavaScript - PullRequest
22 голосов
/ 16 января 2009

В 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>

Спасибо!

Ответы [ 3 ]

57 голосов
/ 16 января 2009

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

$(this).attr("id").match(/\d+/)
24 голосов
/ 16 января 2009
parseInt(input.replace(/[^0-9-]/,""),10)
1 голос
/ 16 января 2009

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

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

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

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

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

Должен предупредить 123.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...