jQuery - 如何在文本中选择特定元素?

时间:2012-07-05 20:00:32

标签: jquery select text

我有一些类似的文字:

  • vt_wildshade2 ^ 508 ^ 508
  • vt_ailleurs2 ^ 1188 ^ 1188
  • ...
  • vt_high2 ^ 13652 ^ 13652

是否可以使用jQuery选择第二个“^”之后的最后一个数字并删除其他部分?

即保持每行的最后一个数字如下:

  • 508
  • 1188
  • ...
  • 13652

我知道如何选择课程/身份/特定文字但我挂在这里。 提前谢谢

3 个答案:

答案 0 :(得分:1)

如果格式始终相同,则可以使用javascript的String.split(delimiter)方法将'^'处的字符串拆分为数组,这将返回如下内容:

    ["vt_wildshade2", "508", "508"]

在这种情况下,以下代码将从您的行中取最后一位:

    var str = "vt_wildshade2^508^508";
    var numbers = str.split("^")[2];

供参考:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split

如果格式不一定相同,则需要使用正则表达式以您需要的格式查找所需的数据,正如其他答复者所解释的那样。

不确定这些数据是如何进入的,您是否可以在脚本运行之前澄清这些数据的显示方式?

答案 1 :(得分:1)

var string = 'vt_wildshade2^508^508',
    number = string.match(/[0-9]+$/)[0];
console.log(number);

$:匹配字符串的结尾。
[0-9]:匹配数字。
+:匹配前面的1次或更多次 *:匹配前面的0次或更多次。
如果您不确定字符串末尾是否有数字,则可以将+更改为* number将是一个空字符串。

Demo使用+
Demo使用*

参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp

答案 2 :(得分:0)

如果你有:

vt_wildshade2^508^508

说,来自:

var theText = $('p').text();

所以,相当于:

var theText = 'vt_wildshade2^508^508';

您可以通过以下方式获取最终的“508”文字:

var finalNumber = theText.split('^')[2];

如果你需要它成为一个数字,更像是:

var finalNumber = (theText.split('^').length > 2) ? parseInt(theText.split('^')[2], 10) : -1;

如果没有第3个号码,则上述代码中的默认值为-1。