在javascript中解析字符串中的Int

Wic*_*wok 22 javascript jquery

在javascript中,从以字母开头的字符串(例如"test [123]")解析INT的最佳方法是什么?我需要一些适合下面例子的东西.

我的JS:

$(document).ready(function() {

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

我生成的HTML:

<select id="attribute[123]">
<!-- various options -->
</select>
<select id="attribute[456]">
<!-- various options -->
</select>
Run Code Online (Sandbox Code Playgroud)

谢谢!

Gum*_*mbo 57

您可以使用正则表达式来匹配数字:

$(this).attr("id").match(/\d+/)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,对于更一般的情况(允许签名的整数),正则表达式应更改为"/ [ - +]?\ d + /",但对于OP的情况,这看起来不必要. (4认同)
  • 让它变得更健壮的是做$(this).attr("id").match(/ \\ [(\ d +)\\] /)[1]因为那会允许像"attribute7 [123]这样的东西" (4认同)

Joe*_*orn 24

parseInt(input.replace(/[^0-9-]/,""),10)
Run Code Online (Sandbox Code Playgroud)

  • 当然它不适用于花车.该专门专门询问了有关整数的信息. (6认同)