reArranceUnicodeTextForASCI method

String reArranceUnicodeTextForASCI(
  1. String str
)

Implementation

String reArranceUnicodeTextForASCI(String str){
  var cY = 0;
  var i = 0;

  while (i < mb_strlen(str)){
    if(i<mb_strlen(str) && isBanglaPreKar(mbCharAt(str,i))){
      var j=1;
      while (isBanglaBanjonborno(mbCharAt(str,i-j))){
        if ((i-j)<0){
          break;
        }
        if ((i-j)<=cY) {
          break;
        }
        if (isBanglaHalant(mbCharAt(str,i-j-1))) {
          j += 2;
        } else {
          break;
        }
      }

      var R = subString(str,0, i-j);
      R += mbCharAt(str,i);
      R += subString(str,i-j, i);
      R += subString(str,i+1, mb_strlen(str));
      str = R;

      cY= i+1;
      continue;

    }


    if (i<(mb_strlen(str)-1) && isBanglaHalant(mbCharAt(str,i)) && mbCharAt(str,i-1)=='র' &&  !isBanglaHalant(mbCharAt(str,i-2))) {
      var j=1;
      var aZ=0;

      while (true){
        if (isBanglaBanjonborno(mbCharAt(str,i+j)) && isBanglaHalant(mbCharAt(str,i+j+1))){
          j+=2;
        }

        else if (isBanglaBanjonborno(mbCharAt(str,i+j)) && isBanglaPreKar(mbCharAt(str,i+j+1))){
          aZ=1;
          break;
        }

        else{
          break;
        }
      }

      var R  = subString(str,0, i-1);
      R += subString(str, i+j+1, i+j+aZ+1);
      R += subString(str, i+1, i+j+1);
      R += mbCharAt(str, i-1);
      R += mbCharAt(str, i);
      R += subString(str, i+j+aZ+1, mb_strlen(str));

      str = R;

      i+=(j+aZ);
      cY=i+1;
      continue;

    }
    i += 1;

  }

  return str;


}