【问题标题】:Add a forward slash between two specific characters with regExp使用 regExp 在两个特定字符之间添加正斜杠
【发布时间】:2016-10-17 22:59:33
【问题描述】:

我知道如何用 regExp 删除/替换字符串中的元素。但是是否可以使用 regExp 在两个特定字符之间添加一个字符?

我已经在使用这个正则表达式来匹配来自用户输入值的对象属性:new RegExp("^" + o.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") + "$", "i");

除了在两个特定字符之间添加正斜杠之外,这条线对我的需要非常有效:每当 'k' 后跟 'm' 时,我需要在它们之间添加一个正斜杠以匹配此对象的属性:

var obj = {
  'km/h': '1.079e+9',
  'km': 0,
  'm/s': '2,998e+8',
  'm': 0
}; 

因此,如果我的输入值为 'km/h''kmh',则两个字符串都应与 obj 中的 'km/h' 相同。是否可以使用 regExp 来做到这一点?

这是我卡住的地方:https://jsfiddle.net/Hal_9100/p0Lwg85w/1/

感谢您的帮助

【问题讨论】:

    标签: javascript regex character


    【解决方案1】:

    回答我自己的问题,这似乎是要走的路:

    var str = "kmh";
    var test = str.replace(/m\s?h/i, 'm/h');
    console.log(test);
    

    仍在寻找更优雅的方法或只是在我现有的 regExp 中实现它的方法:

    new RegExp("^" + o.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") + "$", "i");
    

    任何建议将不胜感激

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2022-11-13
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多