Как отличить регистр буквы? - PullRequest
2 голосов
/ 01 мая 2011
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 ]

3 голосов
/ 01 мая 2011

Ваше регулярное выражение использует флаги ig - i для «Игнорировать регистр».

Просто удалите i, и он станет чувствительным к регистру.

1 голос
/ 01 мая 2011

Удалите флаг "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
}
1 голос
/ 01 мая 2011

Ваше регулярное выражение нечувствительно к регистру. Попробуйте это:

    strTemp=new RegExp(arrONE[i], "g");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...