2011-05-01 6 views
2
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

정규 표현식에 ig - i 플래그가 사용됩니다. "대소 문자 무시"가 있습니다.

i을 제거하면 대소 문자를 구분합니다.

+0

나를 고쳐 주셔서 감사합니다. – user732990

1

정규 표현식은 대소 문자를 구별하지 않습니다. 이것을 시도하십시오 :

strTemp=new RegExp(arrONE[i], "g"); 
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 
} 
관련 문제