检测JavaScript中的Curly/MS智能引号
我正在做一些用户输入验证(主要是法语字符)。首先,我试图检测输入文本框中的字符。但是,我在尝试检测MS Smart引号(卷曲引号)时遇到问题。代码无法识别智能引号。我不确定是否可能在我测试时,如果我没有实际输入智能报价,或者是正则表达式有问题。MS Smart quote代码是最后2个js条件检测JavaScript中的Curly/MS智能引号,javascript,html,regex,ms-word,ms-office,Javascript,Html,Regex,Ms Word,Ms Office,我正在做一些用户输入验证(主要是法语字符)。首先,我试图检测输入文本框中的字符。但是,我在尝试检测MS Smart引号(卷曲引号)时遇到问题。代码无法识别智能引号。我不确定是否可能在我测试时,如果我没有实际输入智能报价,或者是正则表达式有问题。MS Smart quote代码是最后2个js条件 <body> <script> function addComment() { var comm = document.g
<body>
<script>
function addComment() {
var comm = document.getElementById("comment").value;
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 ((comm.match([/[\u201C\u201D\u201E]/g]) ))
{
alert('found MS Smart double quotes and apostrophe ');
}
else if ((comm.match(/[\u2018\u2019\u201A]/g) ))
{
alert('found MS Smart single quotes and apostrophe ');
}
}
</script>
<input type="text" id="comment" onblur="addComment()">
</body>
函数addComment(){
var comm=document.getElementById(“注释”).value;
如果(!(comm.indexOf('\u0152')=-1))
{
警惕(“发现OE结扎”);
}
否则如果(!(comm.indexOf('\u0153')=-1))
{
警惕(“发现oe结扎”);
}
else如果(!(comm.indexOf('\xAB')=-1))
{
警报(“发现”);
}
else if((comm.match([/[\u201C\u201D\u201E]/g]))
{
警报(“发现MS Smart双引号和撇号”);
}
否则如果((comm.match(/[\u2018\u2019\u201A]/g)))
{
警报(“发现MS Smart单引号和撇号”);
}
}
如果块有一些问题,则最后2个块将出现问题。首先,检查智能双引号的代码不必要地用[…]
包装。Secod,如果需要检查字符串是否与模式匹配,请使用RegExp#test()
(不带全局修饰符)
因此,我建议使用
//var comm=“”“””;
var comm=“”;
如果(!(comm.indexOf('\u0152')=-1)){
警惕(“发现OE结扎”);
}否则如果(!(comm.indexOf('\u0153')=-1)){
警惕(“发现oe结扎”);
}else如果(!(comm.indexOf('\xAB')=-1)){
警报(“发现”);
}否则如果(/[\u201C\u201D\u201E]/.test(comm)){
警报(“发现MS Smart双引号和撇号”);
}否则如果(/[\u2018\u2019\u201A]/.test(comm)){
警报(“发现MS Smart单引号和撇号”);
}
如果
块有一些问题,则最后2个块将出现问题。首先,检查智能双引号的代码不必要地用[…]
包装。Secod,如果需要检查字符串是否与模式匹配,请使用RegExp#test()
(不带全局修饰符)
因此,我建议使用
//var comm=“”“””;
var comm=“”;
如果(!(comm.indexOf('\u0152')=-1)){
警惕(“发现OE结扎”);
}否则如果(!(comm.indexOf('\u0153')=-1)){
警惕(“发现oe结扎”);
}else如果(!(comm.indexOf('\xAB')=-1)){
警报(“发现”);
}否则如果(/[\u201C\u201D\u201E]/.test(comm)){
警报(“发现MS Smart双引号和撇号”);
}否则如果(/[\u2018\u2019\u201A]/.test(comm)){
警报(“发现MS Smart单引号和撇号”);
}
document.getElementById(“comment”).value是什么?“-这是我用来测试智能报价条件的值@WiktorStribiżew引号。@WiktorStribiżew哇。我在将代码粘贴到stackoverflow时对其进行了一些编辑。但是没有在我的ide上测试。谢谢你花时间帮忙。非常感谢。还有,无需指定/g
。要测试正则表达式是否与字符串匹配,请在正则表达式中使用RegExp.test()
而不使用/g
。document.getElementById(“comment”).value
?“”-这是我用来测试智能报价条件的值@WiktorStribiżew引号。@WiktorStribiżew哇。我在将代码粘贴到stackoverflow时对其进行了一些编辑。但是没有在我的ide上测试。谢谢你花时间帮忙。非常感谢。还有,无需指定/g
。要测试正则表达式是否与字符串匹配,请在正则表达式中使用不带/g
的RegExp.test()
。