对字符串的操作.拆分并替换字符串



当我想检查我的文本类型变量并显示它的每一个字符时,它会返回值的数字。第二个问题,当我给出要替换的变量时,它是未定义的。你认为这是为什么呢?

<script>
    function checkSpace(x) {
      // alert(x.value.toString());
      for (var charS in x.value.toString()) {
          alert(charS);
      }
      return  x.value.replace(" ", "");
    }

    var wykonawca = document.getElementById("informations").artist;
    var tytul = document.getElementById("informations").title;
    var addd = document.getElementById("tabelkaa");
    var minus = document.getElementById("minus");
    var plus = document.getElementById("plus");
    var row = document.getElementById("effect");

    plus.onclick = function (e) {
      var replacedText1 = checkSpace(wykonawca);
      var replacedText2 = checkSpace(tytul);
      addd.innerHTML = "Artist: " + replacedText1 + "Title: " + replacedText2;
    }
</script>
<body>
  <div id="informationss">
    <form id="informations">
      <p>Wykonawca <input type ="text" name="artist"required> </p>
      <p> Tytul <input type ="text" name="title" required> </p>
    </form> <br/>
    <input type="submit" value="-" id="minus">
    <input type="submit" value="+" id="plus"> <br/>
    <div id="effect"> </div>
  </div>
  <div id ="tabelka">
    <table id="tabelkaa" border="5"></table>
  </div>
</body>
charS

索引。 x.value[charS]charS位置的字母。

此外,replace(/ /g, "")将替换所有空格。

function checkSpace(x) {
        // alert(x.value.toString());
        for (var charS in x.value) {
            alert(x.value[charS]);
        }
        return  x.value.replace(/ /g, "");
    }
    var wykonawca = document.getElementById("informations").artist;
    var tytul = document.getElementById("informations").title;
    var addd = document.getElementById("tabelkaa");
    var minus = document.getElementById("minus");
    var plus = document.getElementById("plus");
    var row = document.getElementById("effect");
    plus.onclick = function (e) {
        var replacedText1 = checkSpace(wykonawca);
        var replacedText2 = checkSpace(tytul);
        addd.innerHTML = "Artist: " + replacedText1 + " Title: " + replacedText2;
    }
<body>
    <div id="informationss">
        <form id="informations">
            <p>Wykonawca <input type ="text" name="artist"required> </p>
            <p> Tytul <input type ="text" name="title" required> </p>
        </form> 
        <br/>
        <input type="submit" value="-" id="minus">
        <input type="submit" value="+" id="plus"> <br/>
        <div id="effect"></div>
    </div>
    <div id ="tabelka">
        <table id="tabelkaa" border="5">
        </table>
    </div>
</body>

首先,for..in遍历对象键或数组索引。如果要循环访问值,请使用 for..of

其次,如果要从字符串中删除所有空格,请使用x.value.replace(/ /g, "")而不是x.value.replace(" ", "") 这将仅替换第一个空格。

<body>
    <div id="informationss">
        <form id="informations">
            <p>Wykonawca <input type ="text" name="artist"required> </p>
            <p> Tytul <input type ="text" name="title" required> </p>
        </form> 
        <br/>
        <input type="submit" value="-" id="minus">
        <input type="submit" value="+" id="plus"> <br/>
        <div id="effect"></div>
    </div>
    <div id ="tabelka">
        <table id="tabelkaa" border="5">
        </table>
    </div>
</body>
<script>
    function checkSpace(x) {
        // alert(x.value.toString());
        for (var charS of x.value.toString()) {
            alert(charS);
        }
        return  x.value.replace(/ /g, "");
    }
    var wykonawca = document.getElementById("informations").artist;
    var tytul = document.getElementById("informations").title;
    var addd = document.getElementById("tabelkaa");
    var minus = document.getElementById("minus");
    var plus = document.getElementById("plus");
    var row = document.getElementById("effect");
    plus.onclick = function (e) {
        var replacedText1 = checkSpace(wykonawca);
        var replacedText2 = checkSpace(tytul);
        addd.innerHTML = "Artist: " + replacedText1 + " Title: " + replacedText2;
    }
</script>

最新更新