vue.js - 为什么带有端口号的 Vutify 表单验证的 URL 规则的正则表达式会出错?
问题描述
以下没有端口号的 URL 规则运行良好。
export default {
data: () => ({
valid: true,
url: '',
urlRules: [
v => !!v || 'URL is required',
v => (v && v.length <= 256) || 'URL must be less than 256 characters',
v => /https?:\/\/[\w!?/\+\-_~=;\.,*&@#$%\(\)\'\[\]]+/.test(v) || 'URL must be valid',
],
}),
components: {
},
}
然后,我[0-9]*
为 URL 的端口号部分设置了如下规则。
export default {
data: () => ({
valid: true,
url: '',
urlRules: [
v => !!v || 'URL is required',
v => (v && v.length <= 256) || 'URL must be less than 256 characters',
v => /https?:[0-9]*\/\/[\w!?/\+\-_~=;\.,*&@#$%\(\)\'\[\]]+/.test(v) || 'URL must be valid',
],
}),
components: {
},
}
但这会发生以下错误:
34:36 error Unnecessary escape character: \+ no-useless-escape
34:44 error Unnecessary escape character: \. no-useless-escape
34:53 error Unnecessary escape character: \( no-useless-escape
34:55 error Unnecessary escape character: \) no-useless-escape
34:57 error Unnecessary escape character: \' no-useless-escape
34:59 error Unnecessary escape character: \[ no-useless-escape
✖ 6 problems (6 errors, 0 warnings)
我不知道为什么附加端口号部分会破坏正则表达式。谢谢你的建议!
解决方案
该问题与 vuetify 规则或正则表达式无关。你应该看看你的 ESLint 配置。此错误表示您的代码未通过“no-useless-escape”ESLint 规则。
作为一种快速解决方法,您可以对某些行禁用 ESLint 规则。此代码应该可以工作:
export default {
data: () => ({
valid: true,
url: '',
urlRules: [
v => !!v || 'URL is required',
v => (v && v.length <= 256) || 'URL must be less than 256 characters', /* eslint-disable-next-line no-useless-escape*/
v => /https?:[0-9]*\/\/[\w!?/\+\-_~=;\.,*&@#$%\(\)\'\[\]]+/.test(v) || 'URL must be valid',
],
}),
components: {
},
}
推荐阅读
- xcode - 为什么 tvOS SearchController 不工作?
- postgresql - 如果唯一,如何选择行?
- sql - 审计表的主键和数据类型
- php - 从数据库中使用多表搜索数据
- html - Markdown 不呈现简单的链接
- mongodb - MongoDB - 如何删除符合条件的最早项目
- html - 双行引导程序 4 导航栏的问题
- javascript - 无法使用 Kraken 的公共 Websocket API 建立握手
- excel-formula - 我的逻辑语句和检查示例中有 #value 错误,但找不到错误
- vb.net - 在插入之前检查 Row 是否已经存在于表中