收到逗号,同时使用正则表达式排除字母

时间:2015-01-05 15:26:31

标签: javascript

如何从输入rpn("2 3 + 7 d -");中排除字母?

我已尝试过这个:

function rpn(input) {

    var str = input.split(/[a-z]/);
    return arr;
};

然后我收到2 3 + 7 , -,所以逗号代替d 然后我尝试使用var str = input.split(/[a-z]\s+/);删除空格,但这根本不起作用。

我正在寻找这样的结果:2,3,+,7,-,所以我可以把它推到一个数组并在那里使用它。

3 个答案:

答案 0 :(得分:2)

我不清楚你要做什么,从我的理解你想要从你的字符串中删除所有字母和空格,在这种情况下这应该工作:

function rpn(input) {
    var str = input.replace(/[a-zA-Z]\s+/g,'');
    return str;
};

然而,正如你在上一次提到的那样,你希望将它作为一个由空格分隔的数组返回,在这种情况下这将起作用:

function rpn(input) {
    var str = input.replace(/[a-zA-Z]/g,'').split(' ');
    return str;
};

答案 1 :(得分:2)

你想做的事情不明确......

如果你想分割字符OR空格的字符串大小写,你可以这样做:

"2 3 + 7  d -".split( /[a-z ]+/ );
                           ^
                         space is here

将返回一个字符串数组

[ '2', '3', '+', '7', '-' ]

答案 2 :(得分:1)

您似乎正在转换实际上str的{​​{1}}。而是将ArrayRegExp.match一起使用,并使用空字符串连接,该字符串将在内部调用[^a-z ]

Array.join(",")