解析jQuery就像选择器正则表达式

时间:2016-10-02 16:59:19

标签: javascript jquery regex string

我有字符串

"foo.bar#baz"

我希望得到

["foo", ".bar", "#baz"]

我尝试用

"foo.bar#baz".match(/[^.]+/g).join(' .').match(/[^#]+/g).join(' #').split(' ');

但我认为这太长了。你知道更短的版本吗?

PS:

我不想

["foo", "bar", "baz"]

我能用

做什么
"foo.bar#baz".match(/[.#]+/g);

2 个答案:

答案 0 :(得分:0)

您可以使用正向前瞻来分割字符串,但保留分隔字符。



echo "A 10,30,50,70 20,40,60,80 +" | awk '{ split($2,a,","); split($3,b,","); for (i in a) print $1, a[i],  b[i], $4; }'




正向前瞻的语法是var myString = "foo.bar#baz"; var myRegex = /(?=[\.#])/g; console.log(myString.split(myRegex));

答案 1 :(得分:0)

输出为

[
  "foo.bar#baz",
  "foo",
  ".bar",
  "#baz"
]

console.log("foo.bar#baz".match(/(.+)(\..+)(\#.+)/i));