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

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

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

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

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

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

想办法转换成json格式

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

直接贴出代码给你啦!

                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的值,如果你要进行运算,记得先将字符串转为数字

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

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)即可