javascript - 如何编写正则表达式来替换 url 字符串中的密码?

标签 javascript regex url passwords

我知道将用户密码传递到 URL 中是不好的做法,我们将努力寻找更好的解决方案,但现在我需要这样做。

如何使用网址中的正则表达式替换密码?

密码可以位于 URL 中问号后面的任意位置。

正则表达式需要处理这样的情况:

API?clientcode=abc&password=123&name=123

API?password=123&name=123

API?name=123&password=123

这是我尝试过的方法,但它并不能涵盖所有情况:

&?password=(.*)&?

'mystring'.replace(/password=(.*?)&/g, 'password=PLACEHOLDER');

我在这里尝试过: https://www.regextester.com/index.php?fam=108498

最佳答案

您可以使用此正则表达式,

\b([?&]?password=)[^&< ]*

并替换为,

$1PLACEHOLDER

<强> Online Demo

JS代码演示,

var arr = ['<html><a>password=abc<a></html>','API?clientcode=abc&password=123&name=123','API?password=123&name=123','API?name=123&password=123','password=JCuLnyAVeAJIjxLIPoyO3WNYyHtBgySrHsQg2MimIgxHDfbg3APuiSJHtPVY4lN&name=123'];

for(s of arr) {
  console.log(s + " --> " + s.replace(/\b([?&]?password=)[^&< ]*/g, '$1PLACEHOLDER'));
}

关于javascript - 如何编写正则表达式来替换 url 字符串中的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55280481/

相关文章:

url - my/route 是否应该重定向到/en/?

jquery - 更改 AJAX 调用的 url

javascript - 无法生成适配器应用程序 - ember.js

javascript - 在 knockout.js 中遍历 ko.computed 时如何访问 foreach 的索引

javascript - 如何在每 3 位数字后添加一个逗号?

除任何数字外的正则表达式匹配

PHP 随机 URL 名称(短 URL)

javascript - 如何使用原型(prototype)进行自定义方法和对象操作

javascript - 将 AngularJs Widget 集成到 Adob​​e Captivate 中

regex - 在 Vim 的搜索模式中使用花括号量词\d{5}