2013-06-27 122 views
1

我正在处理html输入标记的验证函数。我有特定输入的值的字符串和包含允许的字符的字符串。函数来确定一个字符串是否只包含另一个字符

var allowed = 'abcdefghijklmnopqrstuvwxyz"; 
var value = element.value; 

我想编写一个函数来确定value只包含从allowed串字符。我正在寻找一个简单直接的解决方案。 有什么建议吗?

+5

2个词语:[正则表达式](http://www.regular-expressions.info/)。匹配你能想象的任何模式。 – elclanrs

回答

12

是的,你可以使用下面的功能正则表达式

function alphanumeric(inputtxt) 
{ 
    var letters = /^[a-z]+$/; 
    //if you want upper and numbers too 
    //letters = /^[A-Za-z0-9]+$/; 
    //if you only want some letters 
    // letters = /^[azertyuiop]+$/; 
    if(inputtxt.value.match(letters)) 
    { 
     alert('Your registration number have accepted : you can try another'); 
     document.form1.text1.focus(); 
     return true; 
    } 
    else 
    { 
     alert('Please input alphanumeric characters only'); 
     return false; 
    } 
} 
+0

'allowed'字符串可以是任何东西(例如'aeiou'等),并且是我的'validate(allowed,value)'函数的一个参数,因此我不想以这种方式使用正则表达式。你能否给我一个基于字符串的正则表达式。所以我会使用正则表达式,如果我可以使字符串的正则表达式... – gen

+0

是的,你可以只有'aeiou'使用这个正则表达式:/^[aeiou] + $ /,你可以导出你的字符串在你的正则表达式var string = “AEIOU”; var reg =/^ [+ string +] $/ – Ajouve

0

使用。

function isChar(str) { 
    return /^[a-zA-Z]+$/.test(str); 
} 
var allowed = 'abcdefghijklmnopqrstuvwxyz'; 
if(isChar(allowed)){ 
    alert('a-z cool :)'); 
}else{ 
    alert('Enter only Char between a-z'); 
} 

Demo Link

+0

请在@ ant's anwser上面查看我的评论。 – gen

+0

@gen检查新演示http://jsfiddle.net/xmDNb/4/。 如果没有在允许的变量中添加Regx,我不认为结果可以实现。 –

0

这里是在不使用正则表达式的应答

function allLetter(inputtxt) 
{ 
    var inputtxt_low = inputtxt.toLowerCase(); 
    inputtxt_low = inputtxt_low.split(''); 
    var alpha_arr = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ]; 
    var count; 
    for(count = 0; count < inputtxt_low.length; count++) 
    { 
     if(alpha_arr.indexOf(inputtxt_low[count]) == -1) 
     { 
      inputtxt= ''; 
      break; 
     } 
    } 
    return inputtxt; 
} 
相关问题