我有一个字符串值,我想将其拆分并保留所有字符直到最后一个空格。
e.g var x="item1 item2 item3 *stopMarker"
var y=someRegOpr(x); and y will contain only "item1 item2 item3"
如何通过正则表达式做到这一点。
谢谢
我有一个字符串值,我想将其拆分并保留所有字符直到最后一个空格。
e.g var x="item1 item2 item3 *stopMarker"
var y=someRegOpr(x); and y will contain only "item1 item2 item3"
如何通过正则表达式做到这一点。
谢谢
如果您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"
var x = "item1 item2 item3 *stopMarker";
var ans = x.match(/(.*)\s[^\s]*/);
然后答案将存储在ans[1]
这应该得到你想要的:
'item1 item2 item3 *stopMarker'.split(/(.*)\s.*$/)
将导致
["", "item1 item2 item3", ""]
然后你只需要""
手动过滤掉。
如果你想拆分字符串并获得一个没有 *stopMarker 的数组,那么这就是你想要的:
var x="item1 item2 item3 *stopMarker";
var y = x.split(" ");
y=y.splice(0, y.length-1);
如果没有,只需使用 .lastIndexOf 解决方案。
使用“跟随”表达式:
"item1 item2 item3 *stopMarker".match( /^.*(?=\s)/i )
>> ["item1 item2 item3"]