我如何编写一个名为validate(z)的函数,它以字符串作为参数&如果包含1 "@"的象征,至少1

How do I write function called validate(z) which takes a string as argument & return true if contain 1 "@" symbol & at least 1 "." & false otherwise

本文关键字:quot 包含 如果 何编写 至少 参数 validate 函数 字符串 一个      更新时间:2023-09-26

我刚刚开始学习函数,发现它相当困难。

如何编写一个名为validate(z)的函数,该函数接受一个字符串作为参数,如果它包含一个"@"符号和至少一个点"。",则返回true,否则返回false。

。如果z = "stack@overflow.co.uk",函数将返回true。

最简单的方法是使用indexOf()

var s = "foo@foocom";
alert(s.indexOf("@") > -1 && s.indexOf(".") > -1); // Will return false
var s = "foo@foo.com";
alert(s.indexOf("@") > -1 && s.indexOf(".") > -1); // Will return true

编辑:你不能用多个语句调用indexOf(),你必须为每个字符调用它,然后比较两者返回> -1。

或者您可以使用match()与RegEx。

var string = 'foo@bar.com';
function validate(z) {
    var num_matches_at_sign = (z.match(/@/g) || []).length;
    var num_matches_dot_sign = (z.match(/./g) || []).length;
    if ( num_matches_at_sign == 1 && num_matches_dot_sign >= 1 ) {
        alert(true);
    } else {
        alert(false);
    };
};
validate(string);

函数和整个代码是简单和直接的。首先定义函数validate(z){...},以字符串z为参数。然后,我们将出现的次数分配给变量num_matches_at_signnum_matches_dot_sign。为了计算指定字符在字符串中出现的次数,我们使用match()方法与正则表达式结合使用。在这种情况下,我们的正则表达式是/@/g,这意味着我们搜索字符(或字母)@的出现,而g是修饰符,这意味着全局,所以我们查找符号@的所有出现。我们使用相同的原理来查找的出现次数。字符。然后比较num_matches_at_sign 恰好等于1,num_matches_dot_sign等于或大于1。如果两个条件都为真(这就是为什么我们使用&&或逻辑和运算符),函数返回真,否则返回假。您可以注意到match()函数附近使用了逻辑||运算符,否则我们的match方法将返回null。