1

我有一些这样的文本行:

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

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

即保持每行的最后一个数字是这样的:

  • 508
  • 1188
  • ...
  • 13652

我知道如何选择类 / id / 特定文本,但我挂断了。预先感谢

4

3 回答 3

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

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

不确定这些数据是如何进来的,您能否在脚本运行之前澄清这些数据是如何显示的?

于 2012-07-05T20:05:18.837 回答
1
var string = 'vt_wildshade2^508^508',
    number = string.match(/[0-9]+$/)[0];
console.log(number);

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

演示使用+
演示使用*

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

于 2012-07-05T20:07:28.603 回答
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。

于 2012-07-05T20:06:46.277 回答