在JavaScript中检测Curly / MS智能引号

时间:2016-04-26 18:41:54

标签: javascript html regex ms-word ms-office

我做了一些用户输入验证(主要是法语字符)。首先,我试图检测字符是否输入文本框。但是,我在尝试检测MS Smart引号(曲线引号)时遇到问题。代码无法识别智能引号。我不确定是否可能在测试时我是否真的没有输入智能引号,或者它是否与正则表达式有问题。 MS智能报价代码是最后2个js条件。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this.getApplicationContext());
    setContentView(R.layout.activity_login);
}

1 个答案:

答案 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;
&#13;
&#13;