检查字符串是否不包含值



我正在使用indexOf来查看电子邮件是否包含特定文本以外的任何内容。

例如,我想检查一封电子邮件是否不包含"usa"在@符号之后,并显示错误消息。

我首先拆分文本并删除@符号之前的所有内容:

var validateemailaddress = regcriteria.email.split('@').pop();

然后,检查文本是否不包含"usa":

if(validateemailaddress.indexOf('usa')){
$('#emailError').show();
} 

上面的支票似乎有些不对劲。它的工作-我可以输入一个电子邮件,如果它不包括'usa',那么错误信息将显示。

无论如何,当我添加了一个额外的检查,比如如果电子邮件不包含&;can&;,那么无论如何都会显示错误消息。

如下:

if(validateemailaddress.indexOf('usa') || validateemailaddress.indexOf('can')){
$('#emailError').show();
} 

如上所述,无论电子邮件是否包含文本,错误信息都将显示。

我想做的就是检查电子邮件是否包含'usa'或'can',如果没有,则显示错误信息。

我怎样才能使它工作?

这是一个简单的JavaScript函数,用于检查电子邮件地址是否包含'usa'或'can'。

function emailValid(email, words) {
// Get the position of @ [indexOfAt = 3]
let indexOfAt = email.indexOf('@');
// Get the string after @ [strAfterAt = domain.usa]
let strAfterAt = email.substring(indexOfAt + 1);
for (let index in words) {
// Check if the string contains one of the words from words array
if (strAfterAt.includes(words[index])) {
return true;
}
}
// If the email does not contain any word of the words array
// it is an invalid email
return false;
}
let words = ['usa', 'can'];
if (!emailValid('abc@domain.usa', words)) {
console.log("Invalid Email!");
// Here you can show the error message
} else {
console.log("Valid Email!");
}

也可以这样做,使用includes:

const validateEmailAdress = (email) => {
const splittedEmail = email.split('@').pop();

return (splittedEmail.includes('usa') || splittedEmail.includes('can'))
}
console.log("Includes usa: ", validateEmailAdress("something@gmail.usa"))
console.log("Includes can: ", validateEmailAdress("something@gmail.can"))
console.log("Does not includes: ", validateEmailAdress("something@gmail.com"))

有几种方法可以检查字符串是否包含子字符串。

String.prototype.includes

'String'.includes(searchString); // returns true/false

String.prototype.indexOf

// returns values from -1 to last postion of string.
'String'.indexOf(searchString); 
// In combination with ~ this can work similar to includes()
// for strings up to 2^31-1 byte length
// returns 0 if string is not found and -pos if found.
~'String'.indexOf(searchString); 

在正则表达式的帮助下

// substring must be escaped to return valid results
new RegExp(escapedSearchString).test('String'); // returns true/false if the search string is found
'String'.match(escapedSearchString); // returns null or an array if found
所以总的来说,你可以使用所有的方法,比如:
if ('String'.function(searchString)) {
// 'String' includes search String
} else {
// 'String' does not include search String
}

或者indexOf:

if ('String'.indexOf(searchString) > -1) {
// 'String' includes search String
} else {
// 'String' does not include search String
}
// OR
if (~'String'.indexOf(searchString)) {
// 'String' includes search String
} else {
// 'String' does not include search String
}

我相信这个正则表达式匹配就是你要找的

System.out.println (myString.matches("() @(。)美国(. *)"));

相关内容

  • 没有找到相关文章

最新更新