【问题标题】:RegEx: remove |正则表达式:删除 |
【发布时间】:2015-03-20 12:42:27
【问题描述】:
var a="value1%7Cvalue2=%20a%20|value3" 

url 的编码方式是,对于某些值,它被编码为 %7C,而在某些地方它是 |仅签名。

如果不解码此字符串,如何删除首先出现的所有内容 |使用正则表达式?

【问题讨论】:

  • indexOf + slice?
  • a.replace(/\|.*/, '')a.replace(/\|.*/, '|')
  • 预期结果是什么?
  • 您希望 %7C 也被视为“|”吗?

标签: javascript regex


【解决方案1】:

按照您的要求使用正则表达式:

var a = "value1%7Cvalue2=%20a%20|value3"
var regex = /\|.*/;
a = a.replace(regex, "");
console.log(a);

我们匹配| 后跟无限个字符,并将匹配替换为空字符串。

不过,使用split 会更容易。

a = a.split('|')[0]
console.log(a)

【讨论】:

    【解决方案2】:

    为什么是正则表达式?尝试拆分。

    var a="value1%7Cvalue2=%20a%20|value3"; 
    var b = a.split('|')[0];
    

    【讨论】:

      【解决方案3】:

      看这个演示https://regex101.com/r/dE0jW4/2

      /([^|]*)\|.*/
      
      var re = /([^|]*)\|.*/gm; 
      var str = 'value1%7Cvalue2=%20a%20|value3"';
      var subst = '$1'; 
      
      var result = str.replace(re, subst);
      

      【讨论】:

        猜你喜欢
        • 2019-02-16
        • 1970-01-01
        • 2019-08-20
        • 1970-01-01
        • 2013-06-03
        • 2013-09-10
        • 2010-10-20
        • 2013-06-21
        • 1970-01-01
        相关资源
        最近更新 更多