1

.split(/[ \n\t]/g)Javascript では、配列に入力する状況があります。ポイントは、スペースの直前にバックスラッシュがある場合、そこで分割が発生しないようにすることです。

is_multiply___spaced_text- >['is','multiply','','','spaced','text']

しかし:is\_multiply\___spaced_text- >['is multiply ','','spaced','text']

(わかりやすくするためにスペースにアンダースコアを使用)

これが Javascript (正規表現での後読みをサポートしていない) でない場合は、/(?<!\\)[ \n\t]/g. それはうまくいかないので、これを処理する最良の方法は何でしょうか?

4

2 に答える 2

1

文字列を逆にしてから、負の先読みを使用してから、配列内の文字列を逆にすることができます。

var pre_results = "is\\ multiply\\   spaced text".split('').reverse().join('').split(/[ \t](?!\\)/);
var results = [];
for(var i = 0; i < pre_results.length; i++) {
    results.push(pre_results[i].split('').reverse().join(''));
}
for(var i = 0; i < results.length; i++) {
    document.write(results[i] + "<br>");
}

この例では、結果は次のようになります。

['text', 'spaced', '', 'is\\ multiply\\']
于 2013-02-11T14:21:33.897 に答える
0
"is\_multiply\___spaced_text".replace(/\_/, " ").replace(/_/, " ").split("_");
于 2013-02-11T07:10:14.103 に答える