【问题标题】:RegExp works perfectly with .html extension but not with .php extensionRegExp 与 .html 扩展名完美配合,但不适用于 .php 扩展名
【发布时间】:2017-01-21 22:50:28
【问题描述】:

我用 JavaScript 编写了一个脚本,当我尝试在扩展名为 .html 的页面上运行它时,它运行良好。但是当我尝试在带有 .php 的页面上运行它时,出现以下错误:

未捕获的类型错误:无法读取未定义的属性“匹配”
在 HTMLButtonElement.CheckStrength

这是我的代码:

var x = document.getElementById("password");
var button = document.getElementById("submit");
var check = /[0-9]+$/;

function CheckStrength(){
    if(x.value.length > 7 && x.value.match(check) != null)
        {
            alert("Your password is strong.");
        }
    else if (x.value.length > 3 && x.value.length <= 7)
        {
            alert("Your password strength is medium.");
        }
    else
        {
            alert("Your passwword s**k.");
        }
}

【问题讨论】:

  • 扩展名没有任何区别,除了,我猜问题是DOM中没有元素x。或者,您在呈现元素 x 之前运行此代码(例如,如果脚本在 HTML 之前)。
  • 嗨,Andaar,这与您的问题无关,但可能会完全无效。我建议您考虑使用 zxcvbn 进行密码强度检查。
  • @cale_b 我​​知道我无法在
  • @Geoff 我将在学校参加考试,我无法使用外部库或脚本,但感谢您的建议。
  • 标签: javascript php html


    【解决方案1】:

    您的代码在 .php 扩展名中完美运行,只有当目标元素不存在或 javascript 在元素之前插入 时,我才能重现该错误。检查这些;

    • 检查是否有任何拼写错误
    • 将脚本标签放在正文元素的结束标签之前(以确保脚本执行时目标元素可用)
    • 将您的 JavaScript 变量定义包装在 a window.onload function

    【讨论】:

    • 我知道这一点(您在主题标题中有此信息),但我想将其运行到 .php 文件中。
    • @Andaar 我已经在 .php 文件中对其进行了测试,除非“#password”未定义,否则它工作正常。
    • @Andaar 很高兴知道。并且会很好地分享导致错误的原因以及您如何修复它。
    • 我读了你写的第一点和最后一点,当然中间的就是答案;)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签