javascript - 請問各位高手,如何用js檢查不可空白,至少6個字,必須包含英文字母、數字、特殊字元!
迷茫
迷茫 2017-04-10 12:48:07
[JavaScript讨论组]


    
    
        html 練習
        
    
    
    密碼:
        

請問各位高手,,,以上是我的code ,但很明顯,我的正則表示式有錯,我該如何才能“檢查不可空白,至少6個字,必須包含英文字母、數字、特殊字元!”

謝謝!

ps:現在還差“檢查不可空白”這項沒完成~“~

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
大家讲道理
  1. “檢查不可空白”如何实现: 我不确定你的不可空白指的是用户必须填写内容还是说用户填写的内容中不能包含空格等空白内容。因此我分别作答: 如果是前者,即必须填写内容。那可以在trim后判断用户输入的长度,如果为0就说明为空。 如果是后者,可以使用/[\t]+/这个正则进行测试,如果为真说明内容中有空白。

以下为针对提问者原问题的回答:

你写的是 javascript var reg = /^[a-zA-Z0-9]{6,}$/; 这个正则的意思是:全部以大小写字母或数字组成,至少6个字符。与你的需求有两处不符:

  1. 你要的是『必須包含英文字母、數字、特殊字元!』而实际上实现的是必须全部以XXXX组成,范围扩大了
  2. 你的要求中有特殊字符,但这个正则中没有(其实特殊字符并不是一个明确的范围,你最好把范围列举出来)

由于不知道你的特殊字符到底有哪些,我就先仅以!@#$%这四个作为特殊字符,给出一个例子 javascript var reg = /[a-zA-Z0-9!@\$%]{6,}/; 如果你有其他特殊字符,直接添加进去即可。注意,其中的$写作\$的原因是$在正则中有特殊含义,需要转义一下。

大家讲道理

我不太会写正则,好像也没见过正则可以用AND之类的算法,所以我觉得是不是可以拆开来写呢,这样提示也更具体。

var str = document.getElementById("idP").value;
var has_letter = /[a-zA-Z]+/.test(str);
var has_number = /[0-9]+/.test(str);
var has_symbol = /[!@#$%^&*()]+/.test(str);
var enough_size = /[0-9a-zA-Z!@#$%^&*()]{6,}/.test(str);

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号