Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I need to match an expression and extract values from it using named groups.

Lets say this is my string:

var str = 'element=123'

So i want to match it using regex and extract the element and value.

I know how to do it is c#, I am trying to figure it out in JS.

This is my regex:

new RegExp(/^(<element>[A-Za-z0-9])+=[A-Za-z0-9]+$/);

What am I doing wrong?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.1k views
Welcome To Ask or Share your Answers For Others

1 Answer

Now, with ES2018, RegExp named capture groups are actually possible.

Here's an example already working in Chrome 64 (soon to be available also in Safari).

const isoDateExpression = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;

let match = isoDateExpression.exec('1999-12-31');
console.log(
    match.groups.year, // 1999
    match.groups.month, // 12
    match.groups.day, // 31
)

Syntax reference: https://github.com/tc39/proposal-regexp-named-groups

Firefox haven't decided yet, but here's an entry in Mozilla's issue tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=1362154

Edit: Implemented in Firefox 78 and Safari 11.1.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...