用于检查 Firebase 安全规则中有效 URL 的正则表达式
Regex to check for valid URL in Firebase Security Rule
我正在尝试实施一个 firebase 安全规则,以使用正则表达式检查它是否有效 url。这是 url 的一些示例:
https://firebasestorage.googleapis.com/andTheRestIsJustThePartAfterIUploadedIntoFirebaseStorage
我用这个正则表达式来检查:
"imageURL": {
".validate": "newData.val().matches(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/)"
}
但是,我在 Line 26: Invalid escape: '\+'.
处遇到错误
有什么想法吗?
没必要在 regex class
中转义 +
,而是使用这个:
[-+=&;%@.\w_]
我在你的模式中看到另一个语法错误,一些字符应该被转义而不应该,你的模式应该是这样的:
/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[%+~\/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/
但我不确定你的模式的逻辑,我建议阅读这篇文章以获取有关 Firebase Security Rules Regular Expressions
的更多信息
我正在尝试实施一个 firebase 安全规则,以使用正则表达式检查它是否有效 url。这是 url 的一些示例:
https://firebasestorage.googleapis.com/andTheRestIsJustThePartAfterIUploadedIntoFirebaseStorage
我用这个正则表达式来检查:
"imageURL": {
".validate": "newData.val().matches(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/)"
}
但是,我在 Line 26: Invalid escape: '\+'.
有什么想法吗?
没必要在 regex class
中转义 +
,而是使用这个:
[-+=&;%@.\w_]
我在你的模式中看到另一个语法错误,一些字符应该被转义而不应该,你的模式应该是这样的:
/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[%+~\/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/
但我不确定你的模式的逻辑,我建议阅读这篇文章以获取有关 Firebase Security Rules Regular Expressions
的更多信息