javascript - 正则表达式:删除除字母和分隔符之外的所有内容
问题描述
我目前正在使用替换语句来替换字符串的某些部分。我认为我的代码有点过头了,可以简化:
const locales = 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'
locales = locales.replace('-','_')
locales = locales.replace(';q=','')
locales = locales.replace(/[0-9]/g,'')
locales = locales.replace('.','')
最后,我想使用正则表达式从字符串中删除除语言环境之外的所有内容并替换-
为_
. 我希望最终的字符串看起来像这样:
'fr_CH, fr, en, de, *'
解决方案
精心挑选的正则表达式可以在一次替换中去掉权重。第二个切换-
下划线的连字符_
const locales = 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5';
newLocales = locales.replace(/;q=\d*\.\d*/g,'').replace(/-/g,'_');
console.log(newLocales); // fr_CH, fr, en, de, *
推荐阅读
- mongodb - 从 docker 连接到 mongodb
- powershell - Powershell 脚本 - 发送经过身份验证的电子邮件
- javascript - 在 Vue 中使用可变等待时间去抖动输入
- rust - Serde/jsonrpc-core:转换为相同数据的表示
- google-colaboratory - 我想在 Google colab 中安装 tensorflow 1.14 版但失败了
- reactjs - React useEffect 依赖破坏了值传递
- powershell - Powershell WebSocket(ClientWebSocket) 发送消息
- c# - 当子类从父类继承时,有没有办法为继承的字段使用不同的数据类型来添加更多功能?
- html - 将 ngx 时间选择器绑定到 Angular 中的表单控件
- org-mode - org 模式将 NAME 赋予时钟表以使用 perl 解析