2016-11-16 68 views
0

我想在JavaScript的文本字段中用虛擬值轉換標籤中的文本。文本字段具有20的maxlength當用戶輸入一些值,它會檢查是否它達到20Javascript - 檢測標籤並檢查最大長度

的maxlength當用戶輸入以下內容:

This is value <VALUE_1> 

它將取代到虛擬值,「12 」,並檢查以下超過20

This is value 12 

我會用的onkeyup來檢測用戶的用戶輸入的輸入的最大長度,但我應該怎麼做的檢測標籤,轉換,如果達到最大長度20比較?

+0

你需要找到標籤,將它們轉換,然後檢查轉換字符串長度... javascript有正則表達式,這將有助於第一部分,替換第二部分的功能,並且字符串具有第三部分的長度屬性 –

+0

感謝您的回覆,它只能在用戶完成時檢測到整個VALUE_1結束標籤>,我如何追溯到開始標記<並獲取整個VALUE_1字符串? – hades

+0

追溯什麼?一個'input'元素的值就是整個值,而不僅僅是最後一個按鍵! –

回答

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>

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)