Javascript - Regular expression (Regexp)
Table of Contents
About
Multilingual Regular Expression Syntax (Pattern) in Javascript
Regular expressions operate at the level of code units. The single-character pattern (.) matches a single code unit (not a Text - Code point).
console.log(/^.$/.test("𐌰"));
console.log(/^..$/.test("𐌰"));
Syntax
- The pattern enclosed between slashes. Loaded compilation (only when the script is loaded)
var pattern = /ni.o/;
- Runtime compilation (when the script runs, the regexp pattern can be dynamic)
var pattern = new RegExp("ni.o", flags);
Example
Runtime
var pattern = new RegExp("f.o","i");
console.log(pattern.test("foo"));
console.log(pattern.test("bar"));
console.log(pattern.test("FOO"));
Named Group
let re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u;
let result = re.exec('2015-01-02');
console.log(result.groups.year); // '2015'
console.log(result.groups.month); // '01'
console.log(result.groups.day); // '02';
console.log(result[0]); // '2015-01-02';
console.log(result[1]); // '2015';
console.log(result[2]); // '01';
console.log(result[3]); // '02';
Named Group Replacement
let re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u;
let result = '2015-01-02'.replace(re, '$<day>/$<month>/$<year>');
console.log(result);// '02/01/2015'
- Routing
re = new RegExp("/api/profiles/(?<id>[^/]*)");
let result = '/api/profiles/1'.replace(re, 'backend/api/profiles/profile.js?id=$<id>');
console.log(result);
Loaded
- Filter the Environment variable of a node process that begins with a prefix.
const REGEXP_EXP = /^PREFIZ_/i;
const raw = Object.keys(process.env)
.filter(key => REGEXP_EXP.test(key))
.reduce(
(env, key) => {
env[key] = process.env[key];
return env;
}
);
Library
Documentation / Reference
- https://github.com/tc39/proposal-regexp-named-groups - Named Group proposition