char-regex
Advanced tools
Comparing version 1.0.0 to 1.0.1
28
index.js
@@ -7,10 +7,10 @@ "use strict" | ||
/** Used to compose unicode character classes. */ | ||
const rsAstralRange = '\\ud800-\\udfff' | ||
const rsComboMarksRange = '\\u0300-\\u036f' | ||
const reComboHalfMarksRange = '\\ufe20-\\ufe2f' | ||
const rsComboSymbolsRange = '\\u20d0-\\u20ff' | ||
const rsComboMarksExtendedRange = '\\u1ab0-\\u1aff' | ||
const rsComboMarksSupplementRange = '\\u1dc0-\\u1dff' | ||
const rsAstralRange = "\\ud800-\\udfff" | ||
const rsComboMarksRange = "\\u0300-\\u036f" | ||
const reComboHalfMarksRange = "\\ufe20-\\ufe2f" | ||
const rsComboSymbolsRange = "\\u20d0-\\u20ff" | ||
const rsComboMarksExtendedRange = "\\u1ab0-\\u1aff" | ||
const rsComboMarksSupplementRange = "\\u1dc0-\\u1dff" | ||
const rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange | ||
const rsVarRange = '\\ufe0e\\ufe0f' | ||
const rsVarRange = "\\ufe0e\\ufe0f" | ||
@@ -20,8 +20,8 @@ /** Used to compose unicode capture groups. */ | ||
const rsCombo = `[${rsComboRange}]` | ||
const rsFitz = '\\ud83c[\\udffb-\\udfff]' | ||
const rsFitz = "\\ud83c[\\udffb-\\udfff]" | ||
const rsModifier = `(?:${rsCombo}|${rsFitz})` | ||
const rsNonAstral = `[^${rsAstralRange}]` | ||
const rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}' | ||
const rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]' | ||
const rsZWJ = '\\u200d' | ||
const rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}" | ||
const rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]" | ||
const rsZWJ = "\\u200d" | ||
@@ -31,9 +31,9 @@ /** Used to compose unicode regexes. */ | ||
const rsOptVar = `[${rsVarRange}]?` | ||
const rsOptJoin = `(?:${rsZWJ}(?:${[rsNonAstral, rsRegional, rsSurrPair].join('|')})${rsOptVar + reOptMod})*` | ||
const rsOptJoin = `(?:${rsZWJ}(?:${[rsNonAstral, rsRegional, rsSurrPair].join("|")})${rsOptVar + reOptMod})*` | ||
const rsSeq = rsOptVar + reOptMod + rsOptJoin | ||
const rsNonAstralCombo = `${rsNonAstral}${rsCombo}?` | ||
const rsSymbol = `(?:${[rsNonAstralCombo, rsCombo, rsRegional, rsSurrPair, rsAstral].join('|')})` | ||
const rsSymbol = `(?:${[rsNonAstralCombo, rsCombo, rsRegional, rsSurrPair, rsAstral].join("|")})` | ||
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ | ||
return RegExp(`${rsFitz}(?=${rsFitz})|${rsSymbol + rsSeq}`, 'g') | ||
return new RegExp(`${rsFitz}(?=${rsFitz})|${rsSymbol + rsSeq}`, "g") | ||
} |
{ | ||
"name": "char-regex", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "A regex to match any full character, considering weird character ranges.", | ||
@@ -5,0 +5,0 @@ "repository": "https://github.com/Richienb/char-regex.git", |
@@ -18,6 +18,6 @@ # Char Regex [![Travis CI Build Status](https://img.shields.io/travis/com/Richienb/char-regex/master.svg?style=for-the-badge)](https://travis-ci.com/Richienb/char-regex) | ||
"❤️👊🏽".split(/./g) | ||
"❤️👊🏽".match(/./) | ||
//=> ["", "", "", "", "", "", ""] | ||
"❤️👊🏽".split(charRegex()) | ||
"❤️👊🏽".match(charRegex()) | ||
//=> ["❤️", "👊🏽"] | ||
@@ -24,0 +24,0 @@ ``` |
4406