jQuery检查字符串是否以其他字母开头

时间:2016-04-27 21:34:48

标签: javascript jquery string

我需要检测输入中的值是否包含字母' sn'后跟一个连字符(不是立即,输入将是sn12345 - 更多文本),如果是,则运行一个正常的函数,除非用户输入诸如" isn'#34;之类的单词。或者"不是"。

有没有办法可以检测到之前是否有任何字母" sn"以及是否运行该功能。我确实考虑过检查撇号,但有些用户在输入有问题的输入时非常懒惰而且不使用它们。

var lowercase_name = subject.toLowerCase();
var has_sn = lowercase_name.indexOf("sn") > -1;
    if(has_sn === true){
        var has_hyphen = lowercase_name.indexOf("-") > -1;
            if(has_hyphen === false){
                //alert user missing hyphen
            };
                return false;
            }
    }

我还考虑检查" sn"前面有一个空格,但是如果它在输入的开头使用(在这种情况下很可能会在这个实例中使用),那将会失败。

1 个答案:

答案 0 :(得分:1)

既然你说sn和你的破折号之间可能有空格,你想要不匹配sn前面跟其他字母的情况,你可以使用正则表达式:

var lowercase_name = subject.toLowerCase();
var has_sn = lowercase_name.indexOf("sn") > -1;
    if(has_sn === true){
        var snIsNotPrecededByLetters = lowercase_name.match(/\bsn/g);
        var has_hyphen = lowercase_name.indexOf("-") > -1;
            if(has_hyphen === false){
                //alert user missing hyphen
            };
                return false;
            }
    }

" \ b"在正则表达式字符串使它只匹配" sn"如果之前没有字母。