XRegExp regular expressions without the pain in the ass.
$ yarn add xre
import xre from 'xre';
const date = xre`/
(?<year> \d{4}) - # Year
(?<month> \d{2}) - # Month
(?<day> \d{2}) # Day
/x`;
const { year, month, day } = date.exec('2017-06-11');
console.log(`Year: ${year}, month: ${month}, day: ${day}`);
// → Year: 2017, month: 06, day: 11
import xre, { configure } from 'xre';
import XRegExp from 'xregexp';
// By default xre uses minimal version of XRegExp,
// so to use the power of add-ons we have to configure it
// with full version of XRegExp:
configure({ XRegExp });
const fullName = xre`/(?<firstName>\p{Letter}+)\s(?<lastName>\p{Letter}+)/i`;
console.log(fullName.exec('Shit Ass').firstName);
// → Shit
console.log(fullName.exec('Говно Жопа').firstName);
// → Говно
console.log(fullName.exec('くそ けつ').firstName);
// → くそ
All built-in RegExp
's methods and properties is fully supported,
so you can use xre
regular expressions as an argument
for String
's methods such as replace
or match
.
Arguments:
string: string
— string to search.position: number = lastIndex
— zero-based index at which to start the search.sticky: boolean | string = false
— whether the match must start at the specified position only. The string'sticky'
is accepted as an alternative totrue
.
Returns:
- Match array with named backreference properties, or
null
.
See also:
Arguments:
- See
Xre#exec
method arguments.
See also:
Non-standard methods are derived from XRegExp's ones, but does not take regexp argument.
addToken
(see XRegExp docs foraddToken()
method).forEach
(see XRegExp docs forforEach()
method).globalize
(see XRegExp docs forglobalize()
method).match
(see XRegExp docs formatch()
method).replace
(see XRegExp docs forreplace()
method).split
(see XRegExp docs forsplit()
method).
Arguments:
options
:XRegExp
— XRegExp constructor.
$ yarn run lint
$ yarn run test