3

我试图从下面的示例中的文本中获取可变数字是文本。

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());
    });
});

和示例标签和输入字段:

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

2 回答 2

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()将返回输入字符串中所有数字的数组:http: //jsfiddle.net/WnruN/2/(如果您想允许使用数字在你的第一个例子中使用逗号:http /[\d,]+/g: //jsfiddle.net/WnruN/3/

于 2013-06-27T12:58:32.000 回答
5

你可以试试这个。

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

如果您需要进一步的帮助,请告诉我。

于 2013-06-27T12:59:48.917 回答