javascript - 用大写替换href中的小写字符
问题描述
我有一个为关键字生成链接的网页。链接在网页上生成,如下所示:
https://www.example.com/?keywords=energy
https://www.example.com/?keywords=wind%20power
我想更改它,以便=
(以及%20
适用时)之后的第一个字符为大写:
https://www.example.com/?keywords=Energy
https://www.example.com/?keywords=Wind%20Power
目前,我一直在按关键字将它们更改为大写:
$(document).ready(function(){
$('a').each(function(){
this.href = this.href.replace('energy', 'Energy');
});
$('a').each(function(){
this.href = this.href.replace('wind%20power', 'Wind%20Power');
});
});
有没有办法做到这一点,但有任何字符串?我已经尝试了几个正则表达式,但似乎找不到一个正则表达式来使用 javascript 将等号后的第一个字符替换为大写等效项。例如,我尝试了这个(https://regex101.com/r/ybQbaE/1/),然后尝试将其转储到页面上的脚本中:
`$(document).ready(function(){
$('a').each(function(){
this.href = this.href.replace(\=.,\U$0);
});
});`
当然它不起作用,因为它适用于 PHP,但是当我在正则表达式测试器上单击 ECMAscript Flavor 时,它只是将等号和后面的第一个字符替换为\U$0
.
解决方案
如果这些是你唯一的情况,你可以用一个简单的衬里解决它:
url="https://www.example.com/?keywords=wind%20power%20earth%20fire"
url.replace(/(=\w)|(\s\w)|(%20\w)/g,val=>val.toUpperCase())
有关正则表达式模式的更多信息,请访问此。 有关 javascript 替换功能的更多信息,请访问替换 MSDN 文档
推荐阅读
- vba - VBA匹配并更新现有并将新字段添加到下一行的下一个空单元格中
- angular - Angular 5路由中的queryParams列表为空
- php - 如何制作具有相同角色的多用户网站
- python - 在 groupby 中创建多个列进行计算?
- javascript - 如何在 Chrome 扩展中安全地存储 JSON Web 令牌以供进一步 API 使用?
- php - 从其内容中了解文件是图像还是视频
- javascript - 未能在与初始化工作人员的脚本相同的域上构建“工作人员”甚至工作人员脚本
- tokenize - 自动机理论中字母表的歧义是什么?
- android - 如何使用 livedata 测试视图模型?
- winforms - 检测是否没有以编程方式触发 TextChanged 事件