正则表达式导致网站不显示在手机上?



我有一个用vejs编写的网站,由firebase托管。昨天我设法缩小了一个问题,该网站将在移动设备上简单地显示一个空白页面,它归结为我在组件的一个数据函数中声明的这两个对象:

re: {
youtube: /^.*(youtu.be/|v/|u/w/|embed/|watch?v=|&v=|?v=)([^#&?]*)/,
id: /(?<=?v=)w*(?=[^#&?]*)/,
//for timestamp at end of youtube urls
urlTimestamp: /(?<=&t=)((?:[0-9]{1,2})h)?((?:[0-9]{1,3})m)?((?:[0-9]{1,5})s)?/g,
// for checking if timestamp string is valid
timestamp: /^([0-9]{1,2}h)?([0-9]{1,3}m)?([0-9]{1,5}s)?$/g,
},
rules: {
name: [
v => !!v || 'Required'
],
url: [
v => !v || v && /^.*(youtu.be/|v/|u/w/|embed/|watch?v=|&v=|?v=)([^#&?]*)/.test(v) || 'Invalid URL',
v => !v || /(?<=?v=)([^#&?]*)/.test(v) && v.match(/(?<=?v=)([^#&?]*)/)[0].length === 11 || 'Video ID must be 11 characters'
],
timestamp: [
v => !v || v && (/^([0-9]{1,2}h)?([0-9]{1,3}m)?([0-9]{1,5}s)?$/g).test(v) || 'Invalid format',
],
},

(有两个时间戳正则表达式,因为一个从YouTube url的末尾提取时间戳,另一个检查时间戳字符串本身是否有效)

当我删除它们时,网站显示良好。只删除一个或另一个会导致相同的白页。在该组件的'watch'函数中使用正则表达式也会导致相同的错误。我不知道这里出了什么问题。

我明白了。Safari目前不支持向后看的正则表达式。我不知道为什么这导致整个网站不显示,但我删除了后面的部分,它现在都工作了。

相关内容

  • 没有找到相关文章

最新更新