RGJ
(Richard - Communiteq)
1
这是一个双重错误。
首先,正则表达式中的一个错误会导致在任何帖子发布时出现 500 服务器错误。
另请参阅此之前的错误报告 Invalid regular expressions in 'Watched Words' makes no watched word work (场景:更糟)。
其次,一个以前正确的转义连字符的正则表达式现在被视为不正确。因此,在 3.1.0 stable 之前 \\- 可以正常工作,但现在会导致致命错误。
这可能是因为 Unicode 在 9a27803 中被启用]。
请参阅 Regular expression syntax cheat sheet - JavaScript | MDN
请注意,某些字符(如:、-、@ 等)在转义或未转义时都没有特殊含义。转义序列(如 \\:、\\-、\\@)在正则表达式中将等同于其字面、未转义的字符等价物。但是,在带有 unicode 标志 的正则表达式中,这些将导致 无效的身份转义 错误。这是为了确保与使用 \\p 或 \\k 等新转义序列的现有代码向后兼容。
但如果这里有一个异常处理程序会更好。
10 个赞
sam
(Sam Saffron)
4
我们现在已将此列为优先事项,将在未来 4 周内处理。
7 个赞
nbianca
(Bianca)
23
此问题已修复:
我目前正在研究一种方法,以便从 Ruby 端启用对 JS 正则表达式的验证。我希望很快能准备好修复程序。
6 个赞
tumbano
(Alberto)
24
自从上次更新(上周)以来,我开始在发布新帖子时遇到 500 错误。还出现了与电子邮件相关的错误(在 sidekiq 中,与监视词相关)。我今天才注意到这一点。我尝试运行更新,但发布时的 500 错误仍然存在。到目前为止,我发现唯一的解决方法是删除所有监视词。
nbianca
(Bianca)
25
我无法在没有任何进一步信息的情况下重现它。您是否启用了 watched_words_regular_expressions 站点设置?您能否上传您的监视词列表以便我进行测试?或者检查您的日志(https://your-forum/logs)并在此处发布与监视词相关的堆栈跟踪。
tumbano
(Alberto)
26
您是否启用了 watched_words_regular_expressions 站点设置?-> 否
进行了一些测试,似乎只在使用 *通配符时发生此问题
asteriskexampleasterisk → 这会导致 500 错误
example → 已正确替换
asterisk 是 *