如何基于单个出现的分隔符拆分字符串?

时间:2014-12-16 12:34:49

标签: javascript

我有一个从单个组件创建的分隔符$分隔字符串。 我需要拆分它并获得形成字符串的组件。 然而,有一些极端情况,$值出现在我自己的分裂逻辑中。

示例bar,fo$o and zoo是组件。所以创建的字符串是bar$fo$o$zoo。 一切都很好但我现在无法使用$将其拆分,因为它会将bar,fo,o and zoo作为组件。

解决此问题的一种方法是使用复杂且很可能不会发生的分隔符。但我试图通过转义来解决这个问题。使用$替换组件中的$$。因此输入组件现在是bar,fo$$o,zoo。连接字符串为bar$fo$$o$zoo。 现在如何在javascript中单独出现$时拆分?

我正在阅读Split string with a single occurence (not twice) of a delimiter in Javascript,但它看起来有点复杂。如果它是一个重复的问题,我将关闭它。

2 个答案:

答案 0 :(得分:2)

这是我的问题的非正则表达式解决方案;

var input = 'bar$fo$$o$zoo',
    results = input.replace(/%/g, '%25')
                   .replace(/\$\$/g, '%24')
                   .split('$')
                   .map(function(term) {
                       return decodeURIComponent(term);  
                   });

console.log(results);

您可以在http://jsbin.com/qineqazaxo/2/edit

尝试小提琴

答案 1 :(得分:1)

urlencoding组件怎么样?

encodeURIComponent('fo$o')

,然后在拆分字符串后解码到IMPURIComponent?