1.0.5 • Published 8 years ago
xre v1.0.5
xre
XRegExp regular expressions without the pain in the ass.
$ yarn add xreExamples
Multi-line RegExp with comments
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: 11Unicode support
import xre, { configure } from 'xre';
import XRegExp from 'xregexp';
// By default xre uses minimal version of XRegExp,
// so to use the power 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);
// → くそAPI
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.
Methods with non-standard behavior
exec
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:
test
Arguments:
- See
Xre#execmethod arguments.
See also:
Non-standard methods
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).
Additional API
configure
Arguments:
options:XRegExp— XRegExp constructor.
Contributing
$ yarn run lint
$ yarn run test