替换特殊字符,如Ôûîâ

Replace special characters like Ôûîâ

我今天遇到了一个非常奇怪的问题。我正在 Firebird 数据库下创建一个带有 Laravel 的应用程序,因此不要在查询中插入非法字符串或字符非常重要。昨天我收到了关于这种异常的错误报告,所以我检查了代码可能是什么问题。现在我使用以下正则表达式创建了一个验证规则:

regex:/[a-zA-Z0-9\.\-\,üÜóÓöőŐúÚűŰáÁiÍûé]+/

实际上效果很好,但我注意到如果用户插入这样的字符:

Ôûîâ

会抛出上面的异常。对于我使用 TextAnguar 的文本编辑器,有什么方法可以防止这些类型的输入被保存或替换为标准字符? (如 üöőú,匈牙利字母)

感谢您的回答!

最良好的祝愿, Gábor Magyar

您可以将这些字符添加到字符 class

regex:/[-a-zA-Z0-9.,üÜóÓöőŐúÚűŰáÁiÍûéÔûîâ]+/
                                     ^^^^

请注意,字符 class 开头(或结尾)处的 - 无需转义即可表示文字连字符。 ,. 不必在字符 class.

内转义