1

我有以下变量:

var test = category~[330526|330519]^Size{1}~[m]

我如何匹配才能category~[330526|330519]使用正则表达式。

这个值也可以改变,所以它可能是category~[3303226|333219]

4

7 回答 7

6

只需尝试:

test.split('^')[0];
于 2013-07-26T12:36:19.207 回答
3
var test = 'category~[330526|330519]^Size{1}~[m]';

var result = test.split('^').shift();

小提琴

于 2013-07-26T12:36:28.697 回答
1

你可以;

 result = test.substr(0, test.indexOf("]") +1);
于 2013-07-26T12:37:17.343 回答
1

这应该这样做:

category~\[\d+\|\d+\]
于 2013-07-26T12:37:20.573 回答
0

还有一种方法...

var test = 'category~[330526|330519]^Size{1}~[m]';

var result = test.replace(/\^.+/,"");
于 2013-07-26T12:41:25.047 回答
0

"category~[330526|330519]^Size{1}~[m]".replace(/(category~[\d+\|\d+]).*/,"$1"),你应该得到字符串,或者你也可以使用匹配。

于 2013-07-26T12:47:28.310 回答
0

如果您坚持使用正则表达式,则此表达式不关心类别是什么(.*~\[\d+\|\d+\])。这里有一个Rubular 来证明它。但不得不说,@hsz 的回答真的是最有见地的。这split可能是这项工作的正确工具。

于 2013-07-26T12:38:32.047 回答