在Javascript正则表达式中使用的转义字符串[重复]

可能重复:
Javascript中是否存在RegExp.escape函数?

我正在尝试根据用户输入构建JavaScript正则表达式:

函数FindString(input){
    var reg = new RegExp(''+ input +'');
    // [snip]执行搜索
}

但是,当用户输入包含?时,正则表达式将无法正常工作,*因为它们被解释为正则表达式的特殊字符实际上,如果用户在字符串中放置不平衡([正则表达式,则该正则表达式甚至无效。

什么是可以正确转义要在正则表达式中使用的所有特殊字符的javascript函数?