2009-07-02 69 views
0

我有以下JS函数:我正确使用PHP.js strpbrk函数吗?

function validatePass() 
{ 
    var oldPass = document.getElementById("oldpass").value; 
    var newPass1 = document.getElementById("newpass1").value; 
    var newPass2 = document.getElementById("newpass2").value; 
    if(strpbrk(newPass1,"abcdefghijklmnopqrstuvwxyz") != false) 
    { 
     document.getElementById("ContainsAtLeastOneLowercaseLetter").innerHTML = "<span id=\"green\">Met</span>"; 
    } 
    else 
    { 
     document.getElementById("ContainsAtLeastOneLowercaseLetter").innerHTML = "<span id=\"red\">Not Met</span>"; 
    } 
    if(strpbrk(newPass1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ") != false) 
    { 
     document.getElementById("ContainsAtLeastOneUppercaseLetter").innerHTML = "<span id=\"green\">Met</span>"; 
    } 
    else 
    { 
     document.getElementById("ContainsAtLeastOneUppercaseLetter").innerHTML = "<span id=\"red\">Not Met</span>"; 
    } 
    if(strpbrk(newPass1,"1234567890") != false) 
    { 
     document.getElementById("ContainsAtLeastOneNumber").innerHTML = "<span id=\"green\">Met</span>"; 
    } 
    else 
    { 
     document.getElementById("ContainsAtLeastOneNumber").innerHTML = "<span id=\"red\">Not Met</span>"; 
    } 
} 

该代码使得向PHP.js函数strpbrk一个呼叫,以确定是否newPass1包含可接受的数据。在PHP中,strpbrk搜索haystack是否包含char_list中的任何字符。但是,在这个JS实现中,它搜索所有的字符。我怎样才能让它按照我想要的方式行事?

TIA。

回答

1

我会建议使用正则表达式,而不是strpbrk的。

function validatePass() 
{ 
    var oldPass = document.getElementById("oldpass").value; 
    var newPass1 = document.getElementById("newpass1").value; 
    var newPass2 = document.getElementById("newpass2").value; 
    if(/[a-z]/.test(newpass1)) 
    { 
      document.getElementById("ContainsAtLeastOneLowercaseLetter").innerHTML = "<span id=\"green\">Met</span>"; 
    } 
    else 
    { 
      document.getElementById("ContainsAtLeastOneLowercaseLetter").innerHTML = "<span id=\"red\">Not Met</span>"; 
    } 
    if(/[A-Z]/.test(newpass1)) 
    { 
      document.getElementById("ContainsAtLeastOneUppercaseLetter").innerHTML = "<span id=\"green\">Met</span>"; 
    } 
    else 
    { 
      document.getElementById("ContainsAtLeastOneUppercaseLetter").innerHTML = "<span id=\"red\">Not Met</span>"; 
    } 
    if(/[0-9]/.test(newpass1)) 
    { 
      document.getElementById("ContainsAtLeastOneNumber").innerHTML = "<span id=\"green\">Met</span>"; 
    } 
    else 
    { 
      document.getElementById("ContainsAtLeastOneNumber").innerHTML = "<span id=\"red\">Not Met</span>"; 
    } 
} 
+0

哇,那很容易。谢谢你的帮助。 – benjy 2009-07-02 20:55:34