Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Lua-检测字符串是否包含密码的有效字符_String_Lua_Pattern Matching_Preg Match_Coronasdk - Fatal编程技术网

String Lua-检测字符串是否包含密码的有效字符

String Lua-检测字符串是否包含密码的有效字符,string,lua,pattern-matching,preg-match,coronasdk,String,Lua,Pattern Matching,Preg Match,Coronasdk,我在PHP中使用以下代码验证密码是否包含无效字符 function validate_password($str) { if(strlen($str) < 5 || strlen($str) > 30) { return false; } else { return preg_match('/^[-._A-Za-z0-9]*$/',$str); } } 函数验证密码($str){ 如果(strlen($str)30){ 返回f

我在PHP中使用以下代码验证密码是否包含无效字符

function validate_password($str) {
    if(strlen($str) < 5 || strlen($str) > 30) {
        return false;
    } else {
        return preg_match('/^[-._A-Za-z0-9]*$/',$str);
    }
}
函数验证密码($str){
如果(strlen($str)<5 | strlen($str)>30){
返回false;
}否则{
返回preg_match('/^[-.\u A-Za-z0-9]*$/',$str);
}
}
我试图在Lua中也这样做,但不确定检查字符串是否只包含某些字符的最佳方法。我的有效字符是字母数字加上“-”和“.”

本地函数验证密码(str)
如果string.len(str)<5或string.len(str)>30,则
返回错误
其他的
如果(str:match(“%W”)),则
--这是不对的。需要检查字母数字或-或。
返回错误
其他的
返回真值
终止
终止
终止

谢谢你的帮助

return#str>=5和#str
return#str>=5和#str下划线不是
%w
模式的一部分<代码>而不是str:find'[^-.\u%w]'
@EgorSkriptunoff,正确;更新;谢谢<代码>非str:find“[^…]”
类似于双负;)。OP没有提到
但是!:)另外,
~=nil
子句也可以被删除。@hjpotter92,从技术上讲,
~=nil
可以被删除,但随后函数将返回
false
或一个数字,该数字将计算为
true
,但在某些情况下这可能是意外的(例如,
验证密码(…)==true
将在
查找()时失败)
返回一个数字)。@EgorSkriptunoff,同意;它也有点短;);尽管人们需要知道[^…]的含义……下划线不是
%w
模式的一部分<代码>而不是str:find'[^-.\u%w]'@EgorSkriptunoff,正确;更新;谢谢<代码>非str:find“[^…]”类似于双负;)。OP没有提到
但是!:)另外,
~=nil
子句也可以被删除。@hjpotter92,从技术上讲,
~=nil
可以被删除,但随后函数将返回
false
或一个数字,该数字将计算为
true
,但在某些情况下这可能是意外的(例如,
验证密码(…)==true
将在
查找()时失败)
返回一个数字)。@EgorSkriptunoff,同意;它也有点短;);虽然你需要知道[^…]的意思……但你甚至不能验证密码:对密码进行哈希运算并存储哈希。@daurnimator-我使用此函数在哈希运算并存储密码之前验证密码。也许这不是必需的,但每当有人在我的网站上输入密码(注册或登录)时,我都会验证密码。如果密码无效,我根本不需要连接数据库。不过,你不应该限制字符集或长度。密码选择的最佳实践是自动生成。因为您只存储哈希,所以长度无关紧要。您甚至不能验证密码:对密码进行哈希并存储哈希。@daurnimator-我使用此函数在哈希并存储密码之前验证密码。也许这不是必需的,但每当有人在我的网站上输入密码(注册或登录)时,我都会验证密码。如果密码无效,我根本不需要连接数据库。不过,你不应该限制字符集或长度。密码选择的最佳实践是自动生成。因为您只存储散列,所以长度无关紧要。
local function validate_password(str)
    if string.len(str) < 5 or string.len(str) > 30 then
        return false
    else
        if(str:match("%W")) then
                -- this isn't right. need to check if alpha numeric or - or .
            return false
        else
            return true
        end
    end
end