UNPKG

521 BJavaScriptView Raw
1'use strict'
2
3let isWildcard = require('./is_wildcard')
4
5// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
6function escapeRegExp (string) {
7 return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string
8}
9
10module.exports = function (wildcard, hostname) {
11 if (!isWildcard(wildcard)) {
12 return false
13 }
14
15 let baseDomain = wildcard.substring(2)
16 let regex = new RegExp(`^[a-zA-Z0-9_-]+\\.${escapeRegExp(baseDomain)}$`)
17 return hostname.match(regex)
18}