Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用starts with正则表达式(/^myString/g)拆分字符串_Javascript_Jquery_Regex_String_Split - Fatal编程技术网

Javascript 如何使用starts with正则表达式(/^myString/g)拆分字符串

Javascript 如何使用starts with正则表达式(/^myString/g)拆分字符串,javascript,jquery,regex,string,split,Javascript,Jquery,Regex,String,Split,我遇到了一个例子,我需要使用regex(/^'searchString'/)开头分割给定字符串,它不起作用,例如 "token=123412acascasdaASDFADS".split('token=') 这里我想提取令牌值,但可能还有其他一些可能的参数,例如 “重置令牌=sdfdsf12313adadf”。拆分('token=') 这里它还使用“token=”拆分字符串,这就是为什么我需要使用一些正则表达式拆分字符串,该正则表达式声明在字符串以给定字符串开头的位置拆分字符串 谢谢 已编辑

我遇到了一个例子,我需要使用regex(/^'searchString'/)开头分割给定字符串,它不起作用,例如

"token=123412acascasdaASDFADS".split('token=')
这里我想提取令牌值,但可能还有其他一些可能的参数,例如
“重置令牌=sdfdsf12313adadf”。拆分('token=')

这里它还使用“token=”拆分字符串,这就是为什么我需要使用一些正则表达式拆分字符串,该正则表达式声明在字符串以给定字符串开头的位置拆分字符串

谢谢

已编辑 伙计们,谢谢你们宝贵的回复。这个问题可以通过/\btoken=/解决,但如果“token=”作为字符串存储在变量中,例如

sParam = 'token=';
"token=123412acascasdaASDFADS".split(/\bsParam/);

这不起作用。

您可以在带单词边界的拆分中使用正则表达式:

"token=123412acascasdaASDFADS".split(/\btoken=/)
如果
token
存储在变量中,则使用
RegExp
构造函数:

var sParam = "token";
var re = new RegExp("\\b" + sParam + "=");
然后使用它:

var tokens = "token=123412acascasdaASDFADS".split( re );

您可以在带单词边界的拆分中使用正则表达式:

"token=123412acascasdaASDFADS".split(/\btoken=/)
如果
token
存储在变量中,则使用
RegExp
构造函数:

var sParam = "token";
var re = new RegExp("\\b" + sParam + "=");
然后使用它:

var tokens = "token=123412acascasdaASDFADS".split( re );

这是
\b
锚定的用例:

\btoken=

它确保
标记之前没有其他单词字符(单词字符为
[a-zA-Z0-9.]

这是
\b
锚定的用例:

\btoken=

它确保在
标记之前没有其他单词字符(单词字符是
[a-zA-Z0-9.]

您可以尝试使用
String#match()
函数并从索引1中获取匹配的组

示例代码

var re = /^token=(.*)$/; 
var str = 'token=123412acascasdaASDFADS';


console.log('token=123412acascasdaASDFADS'.match('/^token=(.*)$/')[1]);
输出:

123412acascasdaASDFADS

如果
token
是动态的,则使用
RegExp

var token='token=';
var re = new RegExp("^"+token+"(.*)$");

var str = 'token=123412acascasdaASDFADS';

console.log(str.match(re)[1]);

您可以尝试使用
String#match()
函数,从索引1中获取匹配的组

示例代码

var re = /^token=(.*)$/; 
var str = 'token=123412acascasdaASDFADS';


console.log('token=123412acascasdaASDFADS'.match('/^token=(.*)$/')[1]);
输出:

123412acascasdaASDFADS

如果
token
是动态的,则使用
RegExp

var token='token=';
var re = new RegExp("^"+token+"(.*)$");

var str = 'token=123412acascasdaASDFADS';

console.log(str.match(re)[1]);

您需要使用
&
参数分隔符拆分字符串,然后循环遍历这些参数:

var token;
$.each(params.split('&'), function() {
    var parval = this.split('=');
    if (parval[0] == "token") {
        token = parval[1];
        return false; // end the $.each loop
    }
});

如果您只使用
标记=
作为
拆分
分隔符,那么将在值中包含它后面的所有其他参数。

您需要使用
&
参数分隔符拆分字符串,然后循环遍历这些参数:

var token;
$.each(params.split('&'), function() {
    var parval = this.split('=');
    if (parval[0] == "token") {
        token = parval[1];
        return false; // end the $.each loop
    }
});

如果您只是使用
标记=
作为
分割
分隔符,那么您将在值中包含它后面的所有其他参数。

不清楚您需要什么,但这可能是一个解决方案

var reqstr = "token=12345&reset_token=SDFDFdsf12313ADADF&someval=foo"
              .split(/[&=]/)
   ,req = [];
reqstr.map( function (v, i) {
             if (i%2==0) {
              var o = {}; 
              o[/token/i.test(v) ? 'token' : v] = reqstr[i+1]; 
              this.push(o);
             } return v
            }, req);
 /* => req now contains:
     [ { token: '12345' },
       { token: 'SDFDFdsf12313ADADF' },
       { someval: 'foo' } ]
 */

不清楚您需要什么,但这可能是一个可以合作的想法

var reqstr = "token=12345&reset_token=SDFDFdsf12313ADADF&someval=foo"
              .split(/[&=]/)
   ,req = [];
reqstr.map( function (v, i) {
             if (i%2==0) {
              var o = {}; 
              o[/token/i.test(v) ? 'token' : v] = reqstr[i+1]; 
              this.push(o);
             } return v
            }, req);
 /* => req now contains:
     [ { token: '12345' },
       { token: 'SDFDFdsf12313ADADF' },
       { someval: 'foo' } ]
 */

您是否只有一个或多个令牌?每个
param=value
组之间是否有类似
&
的参数分隔符?将有具有不同名称的唯一参数,例如令牌=dfd&refresh\u-token=dfdsf。所以split确实可以获得确切的token=value。您应该首先使用
&
拆分整个参数字符串,然后循环测试它是否以
token=
开始。我已经这样做了。您只有一个或多个令牌吗?每个
param=value
组之间是否有类似
&
的参数分隔符?将有具有不同名称的唯一参数,例如token=dfd&refresh\u token=dfdsf。所以split确实可以获得准确的token=value。您应该首先使用
&
拆分整个参数字符串,然后循环测试它是否以
token=
开头。我已经在这样做了。谢谢您的回答,但是如果我尝试,现在“token=”作为字符串存储到变量名sParam中“token=123412ACASDAASDFADS”。拆分(/\bsParam/)不起作用。请检查我的更新答案是否从变量中使用它。感谢您的回答,但“token=”作为字符串存储在变量名sParam中,现在如果我尝试“token=123412ACASDAASDFADS”。拆分(/\bsParam/)然后它就不起作用了。请检查我的更新答案,以便从变量中使用它。