JavaScript的正则expression式看替代或图书馆的build议
我试图用下面的string将以下string匹配到2个组中,但显然它们在JavaScript中不受支持。
正则expression式: ((?<=:).*(?=;))|((?<=,).*$)
在线演示
data:image/jpeg;base64,/abcd1234... --> group1: image/jpeg --> group2: /abcd1234...
然后我试图使用XRegExp库希望它支持后面,但仍然没有成功。
var XRegExp = require("xregexp"); var base64 = "data:image/jpeg;base64,/abcd1234..."; base64 = XRegExp.matchRecursive(base64, '((?<=:).*(?=;))|((?<=,).*$)', 'g');
但是我得到以下错误:
node_modules/xregexp/xregexp-all.js:3376 new RegExp(generated.pattern, generated.flags), ^ SyntaxError: Invalid regular expression: /((?<=:).*(?=;))|((?<=,).*$)/: Invalid group at new RegExp (native)
我的问题是有一种方法来使用JavaScript的原生正则expression式parsing器可能通过颠倒string上面运行正则expression式或者有JavaScript支持后面的库。 提前致谢
更加详细一些:
(?=[^:;]*;)([^:;]+)|([^;,]+)$
现场演示
或者使用更多的JS:
var re = /:([^:;]+);|,(.*)$/g; var str = "data:image/jpeg;base64,/abcd1234..."; var matches; while ((matches = re.exec(str)) !== null) { console.log(matches[1] ? matches[1] : matches[2]) }
- ldapjs(使用node-express)client.search很慢
- 在使用Angular2时,我们需要Node.js和Express.js吗?
- 为什么会在express.js中导致错误?
- 这个ReactRouter.match()实现有什么问题?
- 产生ENOENT node.js错误
- 如何将基于Angular CLI的ng2 / 4应用程序烧烤到Node / Express中,并具有单一回声系统来开发/运行/debugging服务器/客户端应用程序?
- nodejs request.url.match(regexp)似乎除了匹配之外还返回匹配的一个子string
- Xregexp javascript可选命名组由空格分隔
- express.js路由