我想替换Cookie字符串的domain
:
var cookieText = 'test=value; path=/; domain=.mydomain.com';
cookieText.replace(/[Dd]omain=(\.?)([a-zA-Z0-9\.]*);/, function(match, dot, domain){
return dot + myfunction(domain)
});
但似乎永远不会调用mycallback函数。代码有什么问题?
答案 0 :(得分:2)
那是因为你的正则表达式与cookieText
字符串中的任何子字符串都不匹配。发生这种情况是因为您的模式在每个子字符串的末尾都需要;
,但这不会发生在domain=.mydomain.com
上。试试这个正则表达式:
/[Dd]omain=(\.?)([a-zA-Z0-9\.]*);?/
然后它会起作用:
var cookieText = 'test=value; path=/; domain=.mydomain.com';
cookieText.replace(/[Dd]omain=(\.?)([a-zA-Z0-9\.]*);/, function(match, dot, domain){
console.log(match);
return dot + myfunction(domain);
});