如何用正则替换成这样
正则玩的好的老哥帮帮忙
看起来就是多了空格, 原始字符串中,占位符前后就有空格,那你的正则就把前后空格也带上一起替换掉
不过你的前一个提问里面,最佳答案的那个 URLSearchParams 用起来也很方便啊.
这个写正则好像没啥复杂的,已经用 @@ 包裹了(空格是没有的吧?),可以直接 /@[a-z]+@/ig
去匹配。另外,replace(searchValue, replacer)
,第二个参数是可以是一个函数的。
感觉可以用es6的模板字符串来写,不过变量就不能用@符号了,会报错
const plemis = `http://xxxxx?loginName= ${usercode} &password= ${password}`
这种直接调用两次replace
不就好了, 如下:
plemis.replace('@usercode@', 's10001').replace('@password@', '123456')
或者提供一个函数,然后返回上面@sugar_coffee 提到的字符串,如下:
const getUrl = (usercode, passwrod) =>
`http://xxxxx?loginName= ${usercode} &password= ${password}`
const plemis = getUrl('s10001', '123456')
const usercode = "S10001", password = 123456
const tem = (str, map) => str.replace(/ @([^@]+?)@ /g, (_, k) => map[k])
const plemis = tem("http://xxxxx?loginName= @usercode@ &password= @password@ ", { usercode, password })
console.log(plemis) // Output: http://xxxxx?loginName= S10001 &password= 123456
13 回答12.9k 阅读
8 回答2.7k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答2.1k 阅读
9 回答1.7k 阅读✓ 已解决
5 回答1.3k 阅读
3 回答2.3k 阅读✓ 已解决