在javascript中查找并替换单词后的子字符串

在javascript中查找并替换单词后的子字符串,javascript,Javascript,我有一个字符串,其中电子邮件id为纯文本,我想用哈希值替换字符串中的电子邮件id,例如 var str ="Token=wUFvvW4pLDjO2Kh9BkF6ShNXMpWCAH84RQrF2GMSMvkT9ji1HWER/hPcDzQVZ+eqfBnzltOP0+NJTa/x6+XrKcSR090Jka8Awdj13CiSiD5OXwFbCHzYX0nzwkbWJ3m7zvyvjIWJJZ7L53YRHckAeTzA39UWR53/s8PHyL7hUu8=&ssoComplete=t

我有一个字符串,其中电子邮件id为纯文本,我想用哈希值替换字符串中的电子邮件id,例如

var str ="Token=wUFvvW4pLDjO2Kh9BkF6ShNXMpWCAH84RQrF2GMSMvkT9ji1HWER/hPcDzQVZ+eqfBnzltOP0+NJTa/x6+XrKcSR090Jka8Awdj13CiSiD5OXwFbCHzYX0nzwkbWJ3m7zvyvjIWJJZ7L53YRHckAeTzA39UWR53/s8PHyL7hUu8=&ssoComplete=true&userId=testmail5@gmail.com|flca+&siteID=OXchfjbB"

在存储上述字符串之前,我只想散列
testmail5@gmail.com
哪个在
userId=
之后。因此,需要建议来实现同样的效果。

使用
拆分
两次

var str=“Token=wufvw4pldjo2kh9bkf6shnxmpwcah84rqrf2gmsmvkt9ji1hwer/hPcDzQVZ+eqfBnzltOP0+NJTa/x6+xrkcsr090jka8awdj13cisid5oxwfbchzyx0nzwkbwj3m7zvyvjjjjjz7l3yrhckaetza39uwr53/s8phyl7huuu8=&ssomplete=true&userId=testmail5@gmail.com|flca+&站点ID=OXchfjbB“
console.log(str.split('userId=')[1]。split('|')[0])
尝试以下操作:

str.match(/\userId=(.*?)\|/)[1]

Regex最好使用JS中的
URL
API快速而肮脏地完成类似的事情

var data=“Token=wufvw4pldjo2kh9bkf6shnxmpwcah84rqrf2gmsmvkt9ji1hwer/hPcDzQVZ+eqfBnzltOP0+NJTa/x6+xrkcsr090jka8awdj13cisid5oxwfbchzyx0nzwkbwj3m7zvyvjjjjz7l3yrhckaetza39uwr53/s8phyl7huuru8=&ssomplete=true&userId=testmail5@gmail.com|flca+&siteID=OXchfjbB”;
var some_hash=“myHashValue”;
var data_url=新url(“http://localhost/?“+数据);//肮脏的部分
var new_data=data.replace(data_url.searchParams.get(“userId”).split(“|”)[0],一些_散列);

console.log(新的_数据)不是
userId
值是
testmail5@gmail.com|flca+
?否testmail5@gmail.comuserId的值附加了和附加值,但采用偶数testmail5@gmail.com|flca as userId是lso fine,您也可以添加这个
str.replace(str.split('userId='))[1]。split('|')[0],“一些散列”)
立即替换它。感谢regex,这可以正常工作,但我遇到了一个奇怪的情况,即字符串中没有|,则此代码无法正常工作。如果共享regex以从该字符串中获取emailid,如var pgUrl=“Token=WUFVW4PLDJO2KH9BKF6SHNXMPWCAH84RQRF2GMSMVKT9JI1HWER/hPcDzQVZ+eqfBnzltOP0+NJTa/x6+XRKCSR090JKA8AWDJ13cisid5OxWFBCHZYX0NZWKBWJ3M7ZVYVJ7L53YRCKAETZA39UWR53/s8PHyL7hUu8=&SSOPlete=true&userId=testmail5@gmail.com+&siteID=OXchfjbB”;