Javascript RegEx用于在边界之间浮动

时间:2011-01-10 23:22:05

标签: javascript jquery regex select

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

根据this article Javascript不支持lookbehind。这个表达式适合你吗?

(?:\[)([0-9]+(?:\.[0-9]*)?)(?:\])

编辑:或者,更简洁\[(\d+(?:\.\d*)?)\](感谢Phrogz指出这一点)

EDIT2:为了解决jQuery位问题,也许这样的东西可以工作(从jQuery :selected文档中取出):

$("select").change(function () {
    $("select option:selected").each(function () {
        var value = $(this).text();
        // Do regex magic
    });
});

答案 2 :(得分:0)

a)您应该将此值作为您选项的值,例如

<select>
   <option value="193.33">Stuff [193.33]</option>
   <option value="19232l.39393">Stuff2 [19232l.39393]</option>
</select>

b)如果您无法更改HTML,那么您想要的正则表达式是:

/\[\d+(\.\d+)?\]/

由于多种原因,你不能使用你拥有的东西,包括大多数JS解释器都不支持正面的后观断言这一事实​​。因此,我们必须捕获方括号,然后忽略它们,如下所示:

$('foo option:selected').each(function(){
  var float = /\[(\d+(\.\d+)?)\]/.exec(this.value)[1] * 1;
});

答案 3 :(得分:-1)

这里有一个很好的工具来测试你的正则表达式

http://www.regextester.com/