Я хочу написать функцию в Javascript для преобразования повторяющейся строки в правильную отформатированную строку.

Например, У меня есть текстовое поле, и я знаю, что здесь можно написать только символы «r», «a» и «m» (комбинация строчных или заглавных букв). Я хочу, чтобы после каждого написанного «барана» я конвертировал его. на राम, и я хочу сделать это после того, как будут написаны 3 символа.

Ниже приведен код, который я использую в функции

Текст = text.replace (/ ^ \ s * | \ s * $ / g, ''); // удаляет пробелы в интерфейсе и в конце

 var count_array = text.split(" ");

 for(var j = 0; j < text.length ; j++) 
        { 
            if ((text[j]+ text[j+1] + text[j+2] == "RAM") || (text[j]+ text[j+1] + text[j+2] == "ram")  || (text[j]+ text[j+1] + text[j+2] == "Ram") || (text[j]+ text[j+1] + text[j+2] == "RAm") || (text[j]+ text[j+1] + text[j+2] == "rAm") || (text[j]+ text[j+1] + text[j+2] == "raM") || (text[j]+ text[j+1] + text[j+2] == "rAM")  || (text[j]+ text[j+1] + text[j+2] == "राम"))
            { 
               document.getElementById("ramnaam_type").value =  document.getElementById("ramnaam_type").value + "राम";

            } 
        }

Но это позволяет мне добавлять только строку в ОЗУ текстового поля, я не могу печатать после нее. Я вызываю функцию в текстовом поле HTML в событии onKeyDown. Любая помощь будет оценена по достоинству

-1
Bhavesh Solanki 10 Мар 2019 в 01:19

1 ответ

Лучший ответ

Для достижения ожидаемого результата используйте нижеприведенный вариант сравнения со строчными буквами - ram

function validate(event){
  if(event.target.value.length === 3){
      event.target.value = event.target.value.toLowerCase() === 'ram' ? "राम": '';
  }
}
<input type="text" onInput="validate(event)">

Codepen - https://codepen.io/nagasai/pen/moMWgO

1
Naga Sai A 11 Мар 2019 в 03:35