Linux & OSX | Windows |
---|---|
|
|
Useful regular expressions for JavaScript
npm install --save regs
const regs = require('regs');
regs.email().test('me@gmail.com');
//=> true
regs.yeoman().exec('<% var1 %>')[1]
//=> 'var1'
<script src="https://rawgit.com/dawsonbotsford/regs/master/bundle.js"></script>
<script>
alert(regs.trim().exec(' var1 ')[1]);
//=> 'var1'
</script>
- yeoman (
regs.yeoman()
) - trim (
regs.trim()
) - email (
regs.email()
) - githubIssue (
regs.githubIssue()
) - markdownHeader (
regs.markdownHeader()
)
-
Each function call returns a
RegExp object
which can then operate on/with. -
Each function call supports (optionally) the official RegExp flags which alter behavior of the search. (ex: 'g' for global or 'i' to ignore case)
Capture text between <% %>
or <%= %>
.
1
capture group - the value between delimeters.
Example:
regs.yeoman().exec('<% capture this %>')[1];
//=> 'capture this'
Capture text without surrounding spaces.
1
capture group - the value between starting and ending spaces.
Example:
regs.trim().exec(' var1 ')[1];
//=> 'var1'
Capture all three parts of an email address. Example:
3
capture groups -
- Name (before
@
) - Domain body (between
@
and.
) - Domain suffix (
com
,io
, etc.)
Example:
// Simple validation
regs.email().test('name@domain.suffix');
//=> true
// Capture all parts
regs.email().exec('hi@me.io');
//=> [ 'hi@me.io', 'hi', 'me', 'io', index: 0, input: 'hi@me.io' ]
Capture number following a pound (GitHub issue reference)
1
capture group - The numeric value of the issue
Example:
regs.githubIssue().exec('#98')[1];
//=> '98'
Capture text following a markdown header pound (#
)
1
capture group - Text following the header
headerNumber
examples:
- An
h1
in markdown is# <text>
, and theheaderNumber
should be set to 1 - An
h3
in markdown is### <text>
, and theheaderNumber
should be set to 3
Example:
regs.markdownHeader(1).exec('# my header 1')[1];
//=> 'my header 1'
regs.markdownHeader(4).exec('#### my header 4')[1];
//=> 'my header 4'
MIT © Dawson Botsford