regex - 如何使用螺栓编译器验证正则表达式
问题描述
我正在尝试验证将接收 URL 的字段。我需要使用适当的正则表达式对其进行验证,但是我从 Firebase 文档本身获得的内容不起作用。编译器bolt既不编译,导致错误:
bolt:37:3: Invalid property or method: 'validate() { this.test((/^(ht|f)tp(s?):\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*((0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\'.
bolt:37:3: Invalid property or method: '\\'\\/\\\\+&=%\\$#_]*)?$/) '.
bolt: Fatal errors: 2
我的代码:
type Category {
categoryName: String,
isAvailable: Boolean,
createdAt: Number,
photoUrl: LinkURL,
subcategories: Object | Null
}
type LinkURL extends String {
validate() { this.test((/^(ht|f)tp(s?):\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*((0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\+&=%\\$#_]*)?$/) }
}
解决方案
我相信您在正则表达式的开头有一个额外的“(”
尝试这个
type LinkURL extends String {
validate() { this.test(/^(ht|f)tp(s?):\/\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*((0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&=%\$#_]*)?$/) }
}
推荐阅读
- ag-grid - 为什么启用企业版时过滤 UI 会发生变化?
- esp8266 - ESP32(DOIT DevKit)如何通过 mDNS 在同一个 LAN 中找到另一台主机?
- arrays - 在 let 常量数组中初始化并存储对象的 N 个实例?
- ios - 错误的 Module-Swift.h 标头是通过导入到自身生成的
- c++ - VkCmdPipelineBarrier() 不转换图像布局可能是什么情况
- c# - 通过过滤非按字段分组
- java - Netbeans 无法建立到 jdbc 的连接
- reactjs - 组件已声明但从未使用
- javascript - 在 JavaScript 中:为什么不将标准属性的 DOM 属性设置为空字符串,像 Element.removeAttribute() 那样删除属性?
- linux-kernel - 启用 PTI 时的用户空间 CR3 值