qq_36336328
2017-10-23 08:46
采纳率: 10.5%
浏览 1.3k

js未知字符串长度内容的情况下截取字符串

假设有一串字符,如果想要截图2个特定字符串中间的字符串怎么办,比如:
str="name=3?age=3...."(省略号表示字符串后面可能还要未知的东西),取age的值

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 皆是信仰灬 2017-10-23 09:03

    拼接一些符号,然后进行切割。

    String string = request.getParameter("********");
    String string2 [] = string.split("_");
    String regions_person = string2[0];
    String sellerAccount = string2[1];

    评论
    解决 无用
    打赏 举报
  • 椎名小由奈 2017-10-23 09:04

    有点麻烦,最好还是规范一下这个字符串

    评论
    解决 无用
    打赏 举报
  • 子幽 2017-10-23 09:12

    首先要找到age=的位置,然后截取age=后面一位数到字符串末尾的字符串,再用正则匹配出所得字符串前面的数字,就是age的值了

    评论
    解决 无用
    打赏 举报
  • tom_tom_tom_xiang 2017-10-23 09:19

    想办法转换成json格式

    评论
    解决 无用
    打赏 举报
  • usecf 2017-10-23 10:07

    str="name=3?age=3...."
    var str1 =str.split("?")
    var str2 = str1[1].spilt("=").substring(0,1)

    评论
    解决 无用
    打赏 举报
  • KiterCher 2017-10-23 10:15

    直接贴出代码给你啦!

                    var str = "name=3?age=3?....";
            var n = str.indexOf("age");//查找到age 字符串的位置
            var m = str.indexOf("?",n);//查找到"?"在age后第一次出现的位置,然后将这段字符串截取出来
            var agestr = str.substring(n,m);//在这里获得的字符串为" age=** "
            var age = agestr.substring(4);//这里截取从下标4到末尾的字符串  获得“**”
                    //这里就获得了你想要的age的值,如果你要进行运算,记得先将字符串转为数字
    
    评论
    解决 无用
    打赏 举报
  • xhydwufu 2017-10-24 00:38

    楼主没太说明白,直接用正则就可以了。

    1.比如只去两个?之间的东西:

    const str = 'name=123?age=12312?school=321';
    const res = str.match(/(?=\?).*(?=?)/).substring(1); // age=12312
    

    2.如果有多个?,比如想取所有?隔开的字符串:

    const str = 'name=123?age=12312?school=321?like=456?hasFriend=1';
    const res = str.match(/\?\w+[^\?]*/g);       //  ["?age=12312", "?school=321", "?like=456", "?hasFriend=1"]
    const end =  res.map(i => i.replace('?', ''); // ["age=12312", "school=321", "like=456", "hasFriend=1"]
    

    3.如果你想连前面的name也带上,那把正则换成 str.match(/\?+\w+[^\?]*/g)即可

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题