jquery验证字符串包含精确的子字符串

时间:2014-08-29 03:34:27

标签: jquery regex jquery-validate

jquery中的文本验证,String包含精确的子串而不是部分。 例如:输入字符串: Hello World 子字符串: Hello 类似str.indexof(SubString) >-1 or /SubString/.test(str)的验证如果有人在输入文本框中输入He,则验证上述条件它应该验证确切的字符串“ Hello ”而不是。这该怎么做。您的建议将受到高度赞赏。

/Hello/.test(Hello World) - 正确验证为 Hello World

/Hello/.test(He ..) - 它不应该验证,它在中验证 llo ..

 setValidation: function(){
 $.validator.addMethod("no_Hello_word", function(value) {
              return /hello/.test(value) || /HELLO/.test(value);
          }, "Text mustn't contain word hello/HELLO");
}

5 个答案:

答案 0 :(得分:1)

尝试

return !/hello/i.test(value) || /Hello/.test(value)

答案 1 :(得分:0)

你为什么不这样做呢?这不应该验证用户是否输入“他”

var string= "hello, world";
var string_array= string.toLowerCase().split(" ");

if (string_array.indexOf("hello") >= 0){
    return true;
} else {
    return false;
}

答案 2 :(得分:0)

怎么样:用空格分割字符串,然后在数组中搜索单词:

var exactSearch = function(word, string){
    var words = string.split(" ");

    for(i = 0; i < words.length; i++){
        if(word == words[i]){
            return true;
        }
    }
    return false;
}

请参阅工作示例here

<强>更新

我想在编辑问题之前我会写下答案。

也许它适合你:

$.validator.addMethod("no_Hello_word", function(value, element) {
    return (value.toLowerCase && (value.toLowerCase() === "hello"));
},
    "Text mustn't contain word hello/HELLO!"
);

答案 3 :(得分:0)

试试这个:

function isValid(str){ 
    return !/[hH]ello/.test(str); 
}

// isValid('Hello') -> false
// isValid('Hello World') -> false
// isValid('He') -> true

如果您希望验证以其他方式进行,则可以将其翻转。

答案 4 :(得分:0)

$.validator.addMethod("helloworld_word", function(value,element) {
              return /^((?!helloworld).)*$/i.test(value);
 }, "No Hello world");