我想在javascript的文本字段中使用虚拟值转换标签中的文本。文本字段的最大长度为20.当用户输入一些值时,它将检查它是否达到最大长度20。
当用户输入以下内容时:
This is value <VALUE_1>
它将替换为虚拟值,&#34; 12&#34;,并检查以下是否超过maxlength 20
This is value 12
我将使用onkeyup来检测用户输入的用户输入,但是如果它达到maxlength 20,我应该如何进行检测标记,转换和比较?
答案 0 :(得分:0)
这有效:
var textInput = document.getElementById("text");
var dummyInput = document.getElementById("dummy");
var resultSpan = document.getElementById("replaced");
text.addEventListener("keyup", function(e){
var dummy = dummyInput.value;
var text = textInput.value
var result = text.replace("<VALUE_1>", dummy);
if(result.length <= 20){
resultSpan.innerText = result;
} else {
resultSpan.innerText = "too long!";
}
});
<label for="dummy">Dummy value:</label>
<input type="text" id="dummy" placeholder="Dummy value, e.g. 12" /><br />
<label for="text">Text to process:</label>
<input type="text" id="text" maxlength="20" placeholder="<VALUE_1> will be replaced by the dummy value in the result." /><br />
Replaced text: <span id="replaced"></span>
答案 1 :(得分:0)
我相信你所寻找的只是一些正则表达式。
"This is value <VALUE_1> <123>".replace(/<VALUE_1>/, mySecretSauce)
mySecretSauce
的值为12。
您还可以动态构建正则表达式:
"This is value <VALUE_1> <123>".replace(new RegExp("<VALUE_1>"), mySecretSauce)