RegExp在Javascript中捕获

时间:2015-06-05 12:23:08

标签: javascript regex

我有一个这样的字符串:

#ud %+^'()=%^'K%J+^K$#££½6 u896%+& 547900

我希望在第一个变量中捕获此#ud,在第二个变量中捕获其他任何内容,但不包括第一个空格。

PS:#ud可以更改为#u64#d等。

我如何以干净简单的方式做到这一点?

2 个答案:

答案 0 :(得分:2)

尝试

/^(#[^ ]+) (.+)$/

我使用空格字符来查找第一部分的结尾。

https://www.debuggex.com/r/VZcx0JLtfY4vNrzR

答案 1 :(得分:1)

您可以使用正则表达式来拆分字符串:



var re = /^(\S+)\s(.*)/; 
var str = '#ud %+^\'()=%^\'K%J+^K$#££½6 u896%+& 547900';
alert(str.split(re).filter(Boolean));




/(\S+)\s(.*)/正则表达式将匹配与(\S+)不是空格的第一个字符并捕获它,然后捕获空格,然后捕获字符串的其余部分。捕获组是将文本添加到结果数组所必需的。 .filter(Boolean)函数从数组中删除空项。