簡體   English   中英

javascript 測試輸入的字符串是否以字母開頭

[英]javascript tests if the entered character string starts with an alphabet

我想測試作為參數傳遞的字符串是否以“a”和“d”之間的uppercaselowercase letter 我寫了這段代碼,但它不起作用,它總是給出 else 的內容

 function controler1() { var x=document.getElementById("champ1").value; if (x.startsWith("a") || x.startsWith("b") || x.startsWith('c')|| x.startsWith('d')|| x.startsWith('A')|| x.startsWith('B')|| x.startsWith('C')|| x.startsWith('D')) { document.getElementById("teste1").innerHTML=x+" "+"chaine valide commence par une lettre entre a et d"; }else{ document.getElementById("teste1").innerHTML=x+" "+"chaine invalide ne commence pas par une lettre entre a et d"; } }
 <style type="text/css"> #la{border: 1px solid black; width: 800px;} </style> <div id="la"> <br> <input type="text" id="champ1" value=" "><br> <input type="button" value="tester" onclick="controler1()"> <p id="teste1"></p> </div>

這是因為您的輸入字符串前面有空格,因為 -

 <input type="text" id="champ1" value=" ">

將此更改為 -

 <input type="text" id="champ1" value="">

您可以使用regex來避免這么多if條件 -

/^(a|b|c|d)/gi.test(input)

 function controler1() { var input = document.getElementById("champ1").value; var satisfies = /^(a|b|c|d)/gi.test(input); if (satisfies) { document.getElementById("teste1").innerHTML = input + " " + "chaine valide commence par une lettre entre a et d"; } else { document.getElementById("teste1").innerHTML = input + " " + "chaine invalide ne commence pas par une lettre entre a et d"; } }
 #la { border: 1px solid black; width: 800px; }
 <div id="la"> <br> <input type="text" id="champ1" value=""><br> <input type="button" value="tester" onclick="controler1()"> <p id="teste1"></p> </div>

我的建議:

 champ1.oninput = () => { var res = /^(a|b|c|d)/gi.test(champ1.value); // case insensitive console.log('Starts with a/A, b/B, c/C or d/D: ' + res); }
 <input type="text" id="champ1">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM