0

最後のスペースまでのすべての文字を分割して保持したい文字列値があります。

e.g var x="item1 item2 item3 *stopMarker" 
var y=someRegOpr(x); and y will contain only "item1 item2 item3"

正規表現でこれを行う方法。

ありがとう

4

5 に答える 5

6

lastIndexOf()代わりに使用するとどうなりますか:

var x = "item1 item2 item3 *stopMarker";
x.substring(0, x.lastIndexOf(" "));  // "item1 item2 item3"

更新:スペースのない単一の単語をハックします:

var x = "item1";
x.substring(0, Math.max(0, x.lastIndexOf(" ")) || Infinity);  // "item1"

UPDATE2:正規表現を使用しても同じです:

"item1 item2 item3 *stopMarker".split(/ [^ ]*$/).pop();  // "item1 item2 item3"
于 2013-03-20T10:00:10.503 に答える
1
var x = "item1 item2 item3 *stopMarker";
var ans = x.match(/(.*)\s[^\s]*/);

次に、回答が保存されますans[1]

于 2013-03-20T10:00:09.327 に答える
1

これはあなたが望むものを得るはずです:

'item1 item2 item3 *stopMarker'.split(/(.*)\s.*$/)

結果として

["", "item1 item2 item3", ""]

次に、""手動で除外する必要があります。

于 2013-03-20T10:02:43.460 に答える
1

文字列を SPLIT し、*stopMarker なしで配列を取得する場合は、次のようにします。

var x="item1 item2 item3 *stopMarker";
var y = x.split(" ");
y=y.splice(0, y.length-1);

そうでない場合は、.lastIndexOf ソリューションを使用してください。

于 2013-03-20T10:04:50.113 に答える
1

「後に続く」式を使用します。

"item1 item2 item3 *stopMarker".match( /^.*(?=\s)/i )
>> ["item1 item2 item3"]
于 2013-03-20T10:19:01.487 に答える