像selector regex一样解析jQuery

parse jQuery like selector regex

本文关键字:一样 jQuery selector regex      更新时间:2023-09-26

我有一个字符串

"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);

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

var myString = "foo.bar#baz";
var myRegex = /(?=['.#])/g;
console.log(myString.split(myRegex));

正向向前看的语法是(?=)

输出为

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

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

相关文章: