我有一个字符串值,我想分割并保留所有字符到最后一个空格。正则表达式获取值到最后一个空格
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"
UPDATE:哈克单个字,而不空格:
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]
关闭,但为什么不干脆'/ [^ \ s]的? + $ /'? – RobG 2013-03-20 11:00:58
这应该得到你想要的东西:
'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"]
为什么正则表达式................ – Jai 2013-03-20 10:15:38