【问题标题】:Stuck on javascript username generator卡在 javascript 用户名生成器上
【发布时间】:2014-05-29 17:52:29
【问题描述】:

我正在尝试创建一个系统用户名,该用户名由姓氏、街道地址、名字中的第一个字母字符组成;月份的数字日期;以及提交时间的数字秒字段。目前我在下面有这个,它可以在没有所有地址代码(gname 和 surname)的情况下工作。

function validateForm()
 {
    var system= '';
    var givenname= document.getElementById('gname').value;
    var familyname= document.getElementById('surname').value;
    var addy= document.getElementById('address').value;
    addy = addy.replace(/[0-9]/g, "");


    var givchar = givenname.substr(0, 1);
    var famchar = familyname.substr(0, 1);
    var addchar = addy.substr(0, 1);

    system += famchar+givchar+addchar;

    document.getElementById('susername').value=system;
}

如果我删除以下内容:

var addy= document.getElementById('address').value;
              addy=addy.replaceAll("[0-9]","");
              var addchar = addy.substr(0, 1);

然后提取正确的索引,否则此时在 susername 文本框中什么都不显示。

 <form id="rego" action="<?php echo 
    htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" onSubmit="return validateForm()">

    <label>Given Name:</label> <input type="text" id="gname" name="gname"><br />
    <br />
    <label>Middle Name: </label><input type="text" name="mname"><br />
    <br />
    <label>Family Name:</label> <input type="text" id="surname" name="surname"><br />
    <br />
    <label>Chosen Username:</label> <input type="text" name="username"><br />
    <br />
    <label>Address:</label> <input type="text" id="address" name="address"><br />
    <br />
    <label>Postcode: </label><input type="text" name="postcode"><br />
    <br />
    <label>State:</label> <input type="text" name="state"><br />
    <br />
    <label>Tel number: </label><input type="text" name="tel"><br />
    <br />
    <label>Password:</label> <input type="password" name="password" value="<?php 
    echo $passw;?>"/><span class="error">* <?php echo $passErr;?></span><br />
    <br />
    <label>Password confirmation:</label> <input type="password" name="passconfirm" value="<?php 
    echo $passw1;?>"/><span class="error">* <?php echo $pass1Err;?></span><br />
    <br />
    <label>System username</label> <input type="text" name="susername" id="susername" >
    <br />
    <input type="submit" value="submit" name="submit">
    </div>
</form>

【问题讨论】:

  • 我认为您希望addy=addy.replaceAll(/[0-9]/,""); 删除地址值中的所有数字。
  • 有一个相当的similar question,你的?使用新帐户?
  • @user3688617 检查 JS 控制台以获取描述问题的错误消息...
  • @user3688617 请参阅this 了解如何检查您的控制台。如果有 js 错误,它会显示在这里。我相信您会发现类似“replaceAll 不是函数”的内容。因为js没有replaceAll,所以要使用replace

标签: javascript php html


【解决方案1】:

尝试改变

addy=addy.replaceAll("[0-9]","");

addy = addy.replace(/[0-9]/g, "");

或者,要获取第一个字母(不是数字、符号等),请使用:

addy = addy.replace(/[^A-Za-z]/g, "");

祝你好运!

【讨论】:

  • 嘿,指针,谢谢你,它现在通过了,但是只显示了字符串 gname 和 surname 的第一个索引。我需要它来删除数字(这是我们用替换所做的)并显示街道名称的第一个字符,例如 123 wood street 将显示“w”
  • @user3688617,我在上面编辑了我的答案。我想这会做你需要的,只收到信件。
猜你喜欢
  • 1970-01-01
  • 2021-06-06
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 2022-01-09
  • 2019-06-25
相关资源
最近更新 更多