我做了一些用户输入验证(主要是法语字符)。首先,我试图检测字符是否输入文本框。但是,我在尝试检测MS Smart引号(曲线引号)时遇到问题。代码无法识别智能引号。我不确定是否可能在测试时我是否真的没有输入智能引号,或者它是否与正则表达式有问题。 MS智能报价代码是最后2个js条件。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this.getApplicationContext());
setContentView(R.layout.activity_login);
}
答案 0 :(得分:0)
最后2个else if
块有一些问题。首先,检查智能双引号的那个不必要地用[...]
包裹。 Secod,如果你需要检查字符串是否与模式匹配,请使用RegExp#test()
(不使用全局修饰符)。
所以,我建议使用
//var comm = "‘ “ ” ";
var comm = "‘ ";
if (!(comm.indexOf('\u0152') === -1)) {
alert('found OE ligature');
} else if (!(comm.indexOf('\u0153') === -1)) {
alert('found oe ligature');
} else if (!(comm.indexOf('\xAB') === -1)) {
alert('found <<');
} else if (!(comm.indexOf('\xBB') === -1)) {
alert('found >>');
} else if (/[\u201C\u201D\u201E]/.test(comm)) {
alert('found MS Smart double quotes and apostrophe ');
} else if (/[\u2018\u2019\u201A]/.test(comm)) {
alert('found MS Smart single quotes and apostrophe ');
}
&#13;