Javascript正则表达式 - 拆分字符串 [英] Javascript regex - split string
本文介绍了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屋!
查看全文