【问题标题】:Function to determine if a string contains characters only from another判断一个字符串是否只包含另一个字符的函数
【发布时间】:2013-06-27 09:06:54
【问题描述】:

我正在开发 html 输入标签的验证功能。我有特定输入值的字符串和包含允许字符的字符串。

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

我想编写一个函数来确定value 是否仅包含来自allowed 字符串的字符。我正在寻找一个简单明了的解决方案。 有什么想法吗?

【问题讨论】:

标签: javascript string validation arrays


【解决方案1】:

是的,你可以使用正则表达式

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;  
    }  
} 

【讨论】:

  • allowed 字符串可以是任何东西(例如 'aeiou' 等)并且是我的validate(allowed, value) 函数的参数,因此我不想以这种方式使用正则表达式。你能给我一个基于字符串的正则表达式吗?因此,如果我可以制作字符串的正则表达式,我会使用正则表达式...
  • 是的,你可以使用这个正则表达式来拥有'aeiou':/^[aeiou]+$/ 你可以在你的正则表达式中导出你的字符串 var string = "aeiou"; var reg = /^[+string+]$/
【解决方案2】:

使用下面的函数。

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

【讨论】:

  • 请看我上面对@ant的anwser的评论。
  • @gen 检查新演示 jsfiddle.net/xmDNb/4。如果不在允许的变量中添加 Regx,我认为结果无法实现。
【解决方案3】:

这是一个不使用正则表达式的答案

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;
}

【讨论】:

    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2014-06-10
    相关资源
    最近更新 更多