我刚刚检查了一个项目的一些功能,发现了一个问题。
我的函数中有以下内容:
context = context.slice(-2);
这应该获取字符串的最后一位,例如“something_2”,返回值应该是“_2”,但是如果函数遇到“something_230”,目前我认为上面的代码只会返回“30” ' 而不是 '_230'。
var cleanItemId = function(context)
{
context = context.slice(-2);
return context;
}
我认为这是一个大问题,但我不确定如何解决这个问题,我认为我需要一个正则表达式,有人可以指出我正确的方向吗?
任何帮助将不胜感激。预先感谢您。
最佳答案
I assume I need a reg expression, can someone point me in the correct direction?
正则表达式可以使用,但您不一定需要。方法:
使用正则表达式。
var m = context.match(/_(\d+)$/); if (m) { // Use `m[1]` to get the digits }
该表达式表示:“文字
_
后跟一个或多个数字,后跟字符串末尾,将数字捕获为捕获组。”使用
split('_')
并获取结果数组中的最后一个元素。var m = context.split('_'); // Use `m[m.length - 1]` to get the digits
使用
lastIndexOf
查找_
,然后获取字符串的其余部分。var x = context.lastIndexOf('_'); if (x !== -1) { // Use `context.substring(x + 1)` to get the digits }
关于javascript - 函数需要改进,应该返回一个 _ 和一个数字(不管有多长),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20286231/