如何区分信件的情况?

时间:2011-05-01 04:01:37

标签: javascript case-sensitive

function Convert_ONE2TWO()
{
    var arrTWO = new Array( "a", "e", "i");
    var arrONE = new Array( "A", "E", "I");
    str=document.frmConvert.txtONE.value; //input from ONE
    for (i=0;i<3;i++) //Loop for all letters
        {
        strTemp=new RegExp(arrONE[i], "ig");
        str=str.replace(strTemp,arrTWO[i]); //Replacing
        }
    document.frmConvert.txtTWO.value=str.toString(); //output to TWO
}

<form name="frmConvert" action="" method="get">
<textarea rows="5" cols="90" name="txtONE"></textarea>
<input name="btnConvertg" value="Create TWO" onclick="Convert_ONE2TWO();" type="Button">
<textarea rows="5" cols="90" name="txtTWO"></textarea>
</form>

我正在使用此代码。但是,现在出了问题。如果给定的文本包含大写和小写字母,并且我想将它们更改为不同的值,例如:

    var arrTWO = new Array( "11", "12", "21", "22", "31", "33");
    var arrONE = new Array( "1A", "1a", "2E", "2e", "3I", "3i");

它为两种情况提供相同的价值。请指导我。

3 个答案:

答案 0 :(得分:3)

您的正则表达式使用标记ig - i用于“忽略大小写”。

只需删除i,它就会区分大小写。

答案 1 :(得分:1)

您的正则表达式不区分大小写。试试这个:

    strTemp=new RegExp(arrONE[i], "g");

答案 2 :(得分:1)

从正则表达式对象中删除"i"标志。有关工作示例,请参阅http://jsfiddle.net/x6AbG/。您的代码应为:

function Convert_ONE2TWO()
{
  var arrTWO = new Array( "a", "e", "i");
  var arrONE = new Array( "A", "E", "I");
  str=document.frmConvert.txtONE.value; //input from ONE
  for (i=0;i<3;i++) //Loop for all letters
    {
    strTemp=new RegExp(arrONE[i], "g");
    str=str.replace(strTemp,arrTWO[i]); //Replacing
    }
  document.frmConvert.txtTWO.value=str.toString(); //output to TWO
}