Cyn*_*ech 4 javascript regex unicode firefox
我们遇到了很多麻烦跟踪\ u2028(行分隔符)的用户提交的数据来源,使"未结束的字符串常量"错误在Firefox.
因此,我们希望在将其提交到服务器(然后是数据库)之前将其过滤掉.
经过广泛的谷歌搜索和阅读其他人的问题,很明显我必须在提交到数据库之前过滤掉这些字符.
在编写过滤器之前,我尝试搜索字符以确保它可以使用以下方法找到它:
var index = content.search("/\u2028/");
alert("Index: [" + index + "]");
Run Code Online (Sandbox Code Playgroud)
我每次都得到-1,即使我知道该字符在内容变量中(我已经通过服务器端的Java jUnit测试确认).
假设content.replace()会的工作方式与搜索相同的(),是不是我做错了什么的我失踪,以便找到并去掉这些行分隔符?
您的正则表达式语法不正确.使用正则表达式文字时,只使用两个正斜杠.它应该只是:
var index = content.search("\u2028");
Run Code Online (Sandbox Code Playgroud)
要么:
var index = content.search(/\u2028/); // regex literal
Run Code Online (Sandbox Code Playgroud)
但这应该在服务器上完成,如果在任何地方.可以轻易绕过JavaScript清理.它只对用户方便有用,我不认为不小心输入行分隔符是常见的.