首页 文章

用于转义逗号和双引号的javascript正则表达式

提问于
浏览
0

我必须转义两个特殊字符“和,在字符串中使用以下规则 .

例:-

  • Mercu "ry should be converted into " Mercu“"ry"

  • Mercu,ry应转换为"Mercu,ry"

  • Mer "cu,ry should be converted into " Mer“"cu,ry"

规则: -

  • 含义逗号或双引号应使用双引号进行转义 .

  • 逗号将通过用双引号括起整个单词来转义 .

  • 如果找到双引号,则应在其位置添加双引号 . 整个单词也应该包含在双引号内 .

请在javascript中建议正则表达式模式 .

3 回答

  • 4
    var test = [
        'Mercu"ry', 'Mercu,ry', 'Mer"cu,ry', 'Mercury'
    ];
    
    
    for (x in test) {
        var s = test[x];
        if (s.indexOf('"') != -1) {
            s = s.replace(/"/g, '""');
        }
    
        if (s.match(/"|,/)) {
            s = '"' + s + '"';
        }
    
        alert(s);
    }
    

    测试:http://jsfiddle.net/ZGFV5/

    尝试使用 Mer""cury :)运行代码

  • 2

    只需将单词用双引号括起来,并将所有双引号替换为两个:

    function escapeWord(word) {
        return '"' + word.replace(/"/g, '""') + '"';
    }
    
  • 1

    实现此目的的正则表达式是 /"/g ,因此以下内容适用于您的示例:

    var test1 = 'Mercu"ry'
    var test2 = 'Mercu,ry'
    var test3 = 'Mer"cu,ry'
    
    var regex = /"/g;
    
    var example1 = '"' + test1.replace(regex, '""') + '"';
    var example2 = '"' + test2.replace(regex, '""') + '"';
    var example3 = '"' + test3.replace(regex, '""') + '"';
    
    alert(example1 + " : " + example2 + " : " + example3);
    

    Example fiddle

相关问题