除问号外,所有事情都在取代?'' ,使用replace()

时间:2014-10-20 10:39:00

标签: javascript

我使用简单的javascript来代替以下内容:

  • ''用点'点' 。
  • 和'<'与#less;少于'

但是当我尝试更换问号时,它不起作用,即使所有的东西都没有替换,如果我使用'?'在我的字符串中。

这是JSfiddle的工作http://jsfiddle.net/2w5oLcpz/ ... //没有?用字符串标记

没有使用jsfiddle示例http://jsfiddle.net/b05y0f5q/ .... //使用?在字符串

这里是代码示例://无法正常工作

<!DOCTYPE html>
<script type="text/javascript">
function myFunction() {
    var a0 = ".,!,<,>,?";
    var a = a0.split(','); //+ a000.split(',');

    var b0 = "Dot,exclMark,LessThan,GreatThan,Qmark"
    var b = b0.split(','); //+ b000.split(','); 

    var str = document.getElementById("textBox1").value;
    for (var k = 0; k < a.length; k++) {
              str = str.replace(new RegExp(a[k].replace(/\./g, '\\.'),"g"), b[k]);

    };
    document.getElementById('textBox2').value = str;
     }
   </script>

<body >

<textarea onkeyup="myFunction(); "  id="textBox1" placeholder="Type Here" ></textarea>
<TEXTAREA type="text" id="textBox2"  ></TEXTAREA>

</body>

请用js回答,我不熟悉Jquery。

2 个答案:

答案 0 :(得分:1)

参考此Fiddle 您需要使用\\?代替?

&#13;
&#13;
<!DOCTYPE html>

    
<script type="text/javascript">

function myFunction() {


    var a0 = ".,!,<,>,\\?";
    var a = a0.split(','); //+ a000.split(',');


    var b0 = "Dot,exclMark,LessThan,GreatThan,Qmark"
    var b = b0.split(','); //+ b000.split(','); 
  
    var str = document.getElementById("textBox1").value;
    for (var k = 0; k < a.length; k++) {
              str = str.replace(new RegExp(a[k].replace(/\./g, '\\.'),"g"), b[k]);

    };
    document.getElementById('textBox2').value = str;
     }


</script>



<body >

<textarea onkeyup="myFunction(); "  id="textBox1" placeholder="Type Here" ></textarea>
<TEXTAREA type="text" id="textBox2"  ></TEXTAREA>
  
</body>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

纳库尔, 有关正常工作的版本,请参阅此fiddle。你没有逃脱?这是正则表达式中的特殊字符。这是通过在\前加上来完成的。所以应该是\?代替 ?在你的字符串中。这是您上传的代码的工作版本。

&#13;
&#13;
<!DOCTYPE html>

    
<script type="text/javascript">

function myFunction() {


    var a0 = ".,!,<,>,?";
    var a = a0.split(','); //+ a000.split(',');


    var b0 = "Dot,exclMark,LessThan,GreatThan,Qmark"
    var b = b0.split(','); //+ b000.split(','); 
  
    var str = document.getElementById("textBox1").value;
    for (var k = 0; k < a.length; k++) {
              str = str.replace(new RegExp(a[k].replace(/\./g, '\\.'),"g"), b[k]);

    };
    document.getElementById('textBox2').value = str;
     }


</script>



<body >

<textarea onkeyup="myFunction(); "  id="textBox1" placeholder="Type Here" ></textarea>
<TEXTAREA type="text" id="textBox2"  ></TEXTAREA>
  
</body>
&#13;
&#13;
&#13;