【问题标题】:How to validate regex using the bolt compiler如何使用螺栓编译器验证正则表达式
【发布时间】:2019-01-09 11:57:22
【问题描述】:

我正在尝试验证将接收 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\\-\\.\\?\\,\\'\\/\\\\+&=%\\$#_]*)?$/) }
}

【问题讨论】:

    标签: regex firebase firebase-realtime-database bolt


    【解决方案1】:

    我相信您在正则表达式的开头有一个额外的“(”

    试试这个

    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\-\.\?\,\'\/\\\+&=%\$#_]*)?$/) }
    }
    

    【讨论】:

    • 我意识到了这一点,但它也不起作用。字符串正好在 \\ ' // 之后被破坏。堆栈编辑器本身将损坏的字符串保留为红色
    • 哦,对了,他们似乎已经逃脱了示例中的转义字符。我已经用新的正则表达式更新了我的答案
    • 不,我只是非常了解正则表达式。很高兴它奏效了!快乐编码:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多