我正在尝试根据用户输入构建一个javascript正则表达式:
function FindString(input) {
var reg = new RegExp('' + input + '');
// [snip] perform search
}
但是当用户输入包含一个?或*因为它们被解释为正则表达式特殊时,正则表达式将无法正常工作.实际上,如果用户将不平衡(或[字符串放入其中,则正则表达式甚至无效.
什么是正确转义所有特殊字符以在正则表达式中使用的javascript函数?
有了深厚的SQL背景后第一次使用firebase。我习惯于使用诸如addslashes()清理用户输入查询之类的功能。
是否有任何标准方法可以使用 Firebase 查找执行类似的操作?
例如:
// expected a key, not a path
var userProvidedKey = "3/malicious"
// will not be a ref to what I expect
var ref = firebase.database().ref(`something/${userProvidedKey}`)
Run Code Online (Sandbox Code Playgroud)
我不知道用户能够在参考中进一步搜索会有多恶意,但也许这个问题已经解决了?或者我需要收到.split('/').shift()我收到的任何信息吗?
注意:我的示例使用 JS SDK。