我想用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文本框中调用该函数。 相同的帮助将不胜感激
答案 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)">