使用javascript和正则表达式获取数字文本

时间:2013-06-27 12:50:29

标签: javascript jquery html regex

我试图从下面的例子中的文本中获取一个变量号是文本。

Koop 5 voor € 16,00 p/s en bespaar 11%
Koop 50 voor € 15,00 p/s en bespaar 17%
Koop 120 voor € 13,00 p/s en bespaar 28%
Koop 1000 voor € 10,00 p/s en bespaar 45%

这意味着Buy X for $Y each and save Z%

我需要使用jQuery或Javascript来删除此文本中的X.

下面是代码,用于从A标记中获取文本

 $(function(){
    $('.link').click(function() {
        $("#input-field").val($(this).html());
    });
});

和示例a标签和输入字段:

<input id="input-field" type="text">

<a href="#" class="link">koop 10 voor 10 p.s.<a>
<a href="#" class="link">koop 110 voor 9 p.s<a>
<a href="#" class="link">koop 950 voor 7 p.s<a>

2 个答案:

答案 0 :(得分:7)

使用正则表达式,您可以这样做:

$("#input-field").val( $(this).html().match(/\d+/)[0] );

...也就是说,使用/\d+/选择字符串中的第一个或多个数字,其中.match()返回一个数组,因此您需要获取数组中的第一个(也是唯一的)元素。

演示:http://jsfiddle.net/WnruN/

或者您可以使用.split()

$("#input-field").val( $(this).html().split(" ")[1] );

即,选择第二个“单词”(在您的情况下为数字)。

演示:http://jsfiddle.net/WnruN/1/

请注意,如果通过添加g标志 - /\d+/g使全局正则表达式全局 - 那么.match()将返回输入字符串中所有数字的数组:{{3 (如果你想允许带有逗号的数字,就像你在第一个例子中那样使用/[\d,]+/ghttp://jsfiddle.net/WnruN/2/

答案 1 :(得分:5)

你可以试试这个。

var temp=$(".link").split(" ");
alert(temp[1]);                //it will give you 5 or 50 or 120 or 1000

如果您需要进一步的帮助,请与我们联系。