【问题标题】:How can I split a string separated with pipe symbol using jQuery regex如何使用 jQuery 正则表达式拆分用管道符号分隔的字符串
【发布时间】:2014-04-28 19:14:02
【问题描述】:

我有一个动态生成的字符串,它基本上是一行,每个值由管道符号 | 分隔,我需要将其分隔并将它们插入到一堆隐藏字段中。

This was almost what I needed to do,但不适用于我,我只能使用(~|)作为特殊字符,因为我的数据可能包含其他字符。

这是我的代码:

var data = "Val1@#|val2$%|val3(*|"; // dynamically generated 

$.each(data.split(/\s*|\s+/), function(i, val) {
    alert(val);
});

【问题讨论】:

  • 你为什么不直接做Data.split('|')?这将为您提供一个值数组(以及一个空字符串作为最后一个值,因为您的字符串以“|”结尾)。
  • 没有正则表达式也没关系,但我试图学习正则表达式,所以只是一个愿望,但需要一个解决方案:-(。
  • @AmarnathRShenoy 您想学习,从 REGEXONE 开始
  • 所以像 Aziz Shaikh 的回答一样,在正则表达式中转义 |

标签: javascript jquery regex


【解决方案1】:

"Val1@#|val2$%|val3(*|".split('|') 工作正常。不需要正则表达式。
正则表达式的等价物是:.split(/\|/)

【讨论】:

  • 谢谢,这属于正则表达式吗??
  • @AmarnathRShenoy 哥们,你为什么要用剑杀死苍蝇??
  • @aelor:用剑杀死苍蝇其实很厉害
【解决方案2】:

不需要正则表达式:

var list = Data.split("|");

【讨论】:

    【解决方案3】:

    使用这个:

    var Data ="Val1@#|val2$%|val3(*|" //dynamically generated 
    alert(Data);
    $.each(Data.split(/\|/), function (i, val) {
         alert(val);
    })
    

    工作小提琴:http://jsfiddle.net/nLdcr/

    【讨论】:

    • each 中的第二个参数是function,这是什么意思?
    • 谢谢兄弟,这就是我要找的:D
    • @MrX 返回第四个空值,因为输入包含“|”到底。使用这个更新的小提琴来避免空值:jsfiddle.net/nLdcr/1
    【解决方案4】:

    如果您使用| 分隔字符串,则可以使用javascript 的普通string.split() 函数。无需为此使用正则表达式。

    HTML:

    <div id="result"></div>
    

    代码:

    var data = "Val1@#|val2$%|val3(*|";
    
    $.each(data.split('|'), function(key, value){
        $('#result').append(value).append('<br/>');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      相关资源
      最近更新 更多