HTML中的onInput中的函数调用

时间:2019-03-09 22:19:48

标签: javascript html

我想用JavaScript编写一个函数,将重复的字符串转换为正确格式的字符串。

例如我有文本框,我知道只有可以在此处写的字符是“ r”,“ a”和“ m”(小写或大写字母的组合),我想要的是在每次写“ ram”之后都进行转换到ôाम,我想在写完3个字符后再做。

下面是我正在使用的代码

text = 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 + "राम";

            } 
        }

但是,这允许我在文本框RAM中仅添加字符串,我无法在其后键入。 我在onKeyDown事件的HTML文本框中调用该函数。 相同的帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

要获得预期的结果,请使用以下与小写字母比较的选项-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