Files
jsowell-charger-web/jsowell-ui/node_modules/eslint-plugin-vue/lib/utils/regexp.js
Lemon f5e6e29f00 Merge branch 'dev-zza' into dev
# Conflicts:
#	jsowell-ui/.env.development
#	jsowell-ui/.env.staging
#	jsowell-ui/bin/build-sit.bat
#	jsowell-ui/bin/build.bat
#	jsowell-ui/src/api/adapayMember/adapayMember.js
#	jsowell-ui/src/api/pile/merchant.js
#	jsowell-ui/src/router/index.js
#	jsowell-ui/src/views/financial/financeDetail.vue
#	jsowell-ui/src/views/financial/merchant.vue
#	jsowell-ui/src/views/homeIndex/homeIndex.vue
#	jsowell-ui/src/views/login.vue
#	jsowell-ui/src/views/pile/basic/detail.vue
#	jsowell-ui/src/views/pile/station/components/SiteInfo.vue
#	jsowell-ui/src/views/pile/station/detail.vue
#	jsowell-ui/src/views/pile/station/orderReport.vue
2025-06-03 14:26:37 +08:00

49 lines
1.2 KiB
JavaScript

const RE_REGEXP_CHAR = /[\\^$.*+?()[\]{}|]/gu
const RE_HAS_REGEXP_CHAR = new RegExp(RE_REGEXP_CHAR.source)
const RE_REGEXP_STR = /^\/(.+)\/(.*)$/u
/**
* Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
* "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
*
* @param {string} string The string to escape.
* @returns {string} Returns the escaped string.
*/
function escape(string) {
return string && RE_HAS_REGEXP_CHAR.test(string)
? string.replace(RE_REGEXP_CHAR, '\\$&')
: string
}
/**
* Convert a string to the `RegExp`.
* Normal strings (e.g. `"foo"`) is converted to `/^foo$/` of `RegExp`.
* Strings like `"/^foo/i"` are converted to `/^foo/i` of `RegExp`.
*
* @param {string} string The string to convert.
* @returns {RegExp} Returns the `RegExp`.
*/
function toRegExp(string) {
const parts = RE_REGEXP_STR.exec(string)
if (parts) {
return new RegExp(parts[1], parts[2])
}
return new RegExp(`^${escape(string)}$`)
}
/**
* Checks whether given string is regexp string
* @param {string} string
* @returns {boolean}
*/
function isRegExp(string) {
return Boolean(RE_REGEXP_STR.exec(string))
}
module.exports = {
escape,
toRegExp,
isRegExp
}