Javascript正则表达式 - 拆分字符串 [英] Javascript regex - split string

查看:566
本文介绍了Javascript正则表达式 - 拆分字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

挣扎于正则表达式的要求。我需要将字符串拆分成数组,无论它在哪里找到正斜杠。但是如果正斜杠前面有一个转义,那就不行了。

Struggling with a regex requirement. I need to split a string into an array wherever it finds a forward slash. But not if the forward slash is preceded by an escape.

例如,如果我有这个字符串:

Eg, if I have this string:

hello/world

我希望将它分成一个像这样的数组:

I would like it to be split into an array like so:

arrayName[0] = hello
arrayName[1] = world

如果我有这个字符串:

hello/wo\/rld

我希望将它分成一个数组像这样:

I would like it to be split into an array like so:

arrayName[0] = hello
arrayName[1] = wo/rld

任何想法?

推荐答案

以下是一个有点啰嗦,但会起作用,并避免 IE破坏的问题通过不使用正则表达式来拆分实现。

The following is a little long-winded but will work, and avoids the problem with IE's broken split implementation by not using a regular expression.

function splitPath(str) {
    var rawParts = str.split("/"), parts = [];
    for (var i = 0, len = rawParts.length, part; i < len; ++i) {
        part = "";
        while (rawParts[i].slice(-1) == "\\") {
            part += rawParts[i++].slice(0, -1) + "/";
        }
        parts.push(part + rawParts[i]);
    }
    return parts;
}

var str = "hello/world\\/foo/bar";
alert( splitPath(str).join(",") );

这篇关于Javascript正则表达式 - 拆分字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆