Javascript - 检测标签并检查maxlength

时间:2016-11-16 03:51:09

标签: javascript html

我想在javascript的文本字段中使用虚拟值转换标签中的文本。文本字段的最大长度为20.当用户输入一些值时,它将检查它是否达到最大长度20。

当用户输入以下内容时:

This is value <VALUE_1>

它将替换为虚拟值,&#34; 12&#34;,并检查以下是否超过maxlength 20

This is value 12

我将使用onkeyup来检测用户输入的用户输入,但是如果它达到maxlength 20,我应该如何进行检测标记,转换和比较?

2 个答案:

答案 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)