Skip to content

Commit 8185b21

Browse files
Change ignorePattern to plain RegExp
1 parent 3e03418 commit 8185b21

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

docs/rules/no-v-html.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ This rule reports all uses of `v-html` directive in order to reduce the risk of
3535
```json
3636
{
3737
"vue/no-v-html": ["error", {
38-
"ignorePattern": "/Html$"
38+
"ignorePattern": ".Html$"
3939
}]
4040
}
4141
```

lib/rules/no-v-html.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55
'use strict'
66
const utils = require('../utils')
7-
const { toRegExp } = require('../utils/regexp')
87

98
module.exports = {
109
meta: {
@@ -33,17 +32,17 @@ module.exports = {
3332
/** @param {RuleContext} context */
3433
create(context) {
3534
const options = context.options[0]
36-
const ignoredVarMatcher = options?.ignorePattern
37-
? toRegExp(options.ignorePattern, { remove: 'g' })
35+
const ignoreRegEx = options?.ignorePattern
36+
? new RegExp(options.ignorePattern, 'u')
3837
: undefined
3938

4039
return utils.defineTemplateBodyVisitor(context, {
4140
/** @param {VDirective} node */
4241
"VAttribute[directive=true][key.name.name='html']"(node) {
4342
if (
44-
ignoredVarMatcher &&
43+
ignoreRegEx &&
4544
node.value.expression.type === 'Identifier' &&
46-
ignoredVarMatcher.test(node.value.expression.name)
45+
ignoreRegEx.test(node.value.expression.name)
4746
) {
4847
return
4948
}

tests/lib/rules/no-v-html.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ruleTester.run('no-v-html', rule, {
3232
{
3333
filename: 'test.vue',
3434
code: '<template><div v-html="knownHtml"></div></template>',
35-
options: [{ ignorePattern: '/^(?:html|.+Html)$/' }]
35+
options: [{ ignorePattern: '.Html$' }]
3636
}
3737
],
3838
invalid: [
@@ -54,7 +54,7 @@ ruleTester.run('no-v-html', rule, {
5454
{
5555
filename: 'test.vue',
5656
code: '<template><div v-html="unsafeString"></div></template>',
57-
options: [{ ignorePattern: '^(?:html|.+Html)$' }],
57+
options: [{ ignorePattern: '.Html$' }],
5858
errors: ["'v-html' directive can lead to XSS attack."]
5959
}
6060
]

0 commit comments

Comments
 (0)