javascript - 函数需要改进,应该返回一个 _ 和一个数字(不管有多长)

标签 javascript jquery function

我刚刚检查了一个项目的一些功能,发现了一个问题。

我的函数中有以下内容:

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?

正则表达式可以使用,但您不一定需要。方法:

  1. 使用正则表达式。

    var m = context.match(/_(\d+)$/);
    if (m) {
        // Use `m[1]` to get the digits
    }
    

    该表达式表示:“文字 _ 后跟一个或多个数字,后跟字符串末尾,将数字捕获为捕获组。”

  2. 使用 split('_') 并获取结果数组中的最后一个元素。

    var m = context.split('_');
    // Use `m[m.length - 1]` to get the digits
    
  3. 使用 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/

相关文章:

javascript - 图像与 rails 上的砖石重叠

javascript - JS : Issue getting values from drop-down menu to replace parts of HREF strings

javascript - 确保职能范围

javascript - 仅在内部元素上调用事件监听器(Javascript)

javascript - 鼠标悬停并单击以显示带有 CSS 和 JS 的文本

javascript - 如何仅在第一次点击时通过 react-query 获取数据,然后在后续点击时禁用重新获取

jQuery UI slider 背景

javascript - 从浏览器中删除历史点

jquery:将 OR 与 .click() 一起使用?

javascript - 触发输入文件点击不会弹出文件上传对话框