我有一些这样的文本行:
- vt_wildshade2^508^508
- vt_ailleurs2^1188^1188
- ...
- vt_high2^13652^13652
是否可以使用 jQuery 选择第二个“^”之后的最后一个数字并删除另一部分?
即保持每行的最后一个数字是这样的:
- 508
- 1188
- ...
- 13652
我知道如何选择类 / id / 特定文本,但我挂断了。预先感谢
如果格式始终相同,您可以使用 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
如果格式并不总是相同,则需要使用正则表达式以您需要的格式查找所需的数据,正如其他回答者所解释的那样。
不确定这些数据是如何进来的,您能否在脚本运行之前澄清这些数据是如何显示的?
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
如果你有:
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。