-2

我正在编写一个函数,该函数接受一个字符串($skill)和一个正则表达式中允许的字符列表。

这是作业的要求

  1. 技能名称:必填;不能太长;可以包含空格、连字符、撇号(当然还有字母数字字符),但不能包含其他字符
  2. 作为此步骤的一部分,您必须有一个 php 函数,该函数接受一个字符串和一个允许的字符列表(或者,不允许的字符,甚至可能是一个正则表达式),并返回一个错误消息(如果字符串不'不符合要求),或空字符串(如果字符串符合要求)。一定要给这个函数一个描述性的名字。

这是我的代码

function validate_skill($skill, $list) { 
if (preg_match('/['.$list.']/',$skill)) {
        echo "The skill contains a match.<br />";
    }else{
    echo "The skill does not contain a match.";
    }
}

我只收到一个空白页面,通过注释掉该功能,该页面就可以工作了。这是将变量放在表达式中的正确方法吗?

4

1 回答 1

1

你要么误解了你的要求,要么你正在接近这个错误。这是要求的简化版本:

  1. 该函数应该有 2 个参数、技能名称和某种验证字符串(在您的情况下,是允许的字符列表,也就是白名单)。明白了✔</li>
  2. 技能名称不宜过长。这意味着您需要限制长度。✘</li>
  3. 通过验证字符串是否匹配允许的字符列表,您需要确保它只匹配那些,而不是其他。现在,您正在检查是否找到列表中的任何字符。✘</li>
  4. 该函数应返回错误(或不返回任何内容),因此,它本身不应显任何内容。✘</li>

你应该努力解决这些问题。

另外,在另一个方面,您有语法错误。echo echo,应该是吧else echo

于 2012-10-11T18:41:48.550 回答