判断某个字符串中是否含有特殊字符

本文介绍了一个用于判断字符串中字符是否符合特定集合的JavaScript函数。该函数能够确保用户输入仅包含指定类型的字符,如数字和字母,适用于用户注册等场景。

有时候,我们要对文本框中输入的字符进行判断,是否含有特殊字符。例如,在用户注册时如果只允许用户名为数字和字母组成,我们就可以使用以下定义的函数进行判断:
     str —— 要被判断的字符串;

     compare —— 要判断是否含有的字符集合的字符串;

     belongOrNot —— 布尔值,为true表示判断str中的字符是否都包含在compare中,为false表示判断str中的字符是否都不包含在compare中。

 //判断特殊字符串的函数
        function SpecialString(str,compare,belongOrNot)
        {
            if ((str==null) || (compare==null) || ((belongOrNot!=null) && (belongOrNot!=true) && (belongOrNot!=false)))  //当参数str或compare为空,或者belongOrNot非布尔值是弹出错误提示,并返回false
            {
                alert("function SpecialString(string,compare,belongOrNot)参数错误");
                return false;
            }
            if (belongOrNot==null || belongOrNot==true)   //当belongOrNot值为true或不给值的时候,做以下操作
            {
                for (var i=0;i<str.length;i++)     //遍历str中的每个字符
                {
                    if (compare.indexOf(str.charAt(i))==-1)   //如果当前字符不在compare所包含的字符中
                    return false;       //返回false
                }
                return true;    //若str中所有字符都包含于compare中,返回true
            }else   //否则,当belong不为null或true的时候,执行以下操作
            {
                for (var i=0;i<str.length;i++)  //遍历str中的每个字符
                {
                    if (compare.indexOf(str.charAt(i))!=-1)   //如果当前字符在compare所包含的字符中
                    return false;     //返回false
                }
                return true;  //若str中所有字符都不在compare中,返回true
            }
        } 

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/ShanderLam/archive/2008/10/13/3067306.aspx

以下是几种使用 JavaScript 判断字符串是否包含特殊字符的方法: #### 方法一:使用数组遍历 ```javascript function isSpecialChar(str) { // 把特殊字符放在数组里 var specialchar = ['.', '_', '@']; for (var key in specialchar) { if (str.indexOf(specialchar[key]) != -1) { return true; } } return false; } ``` 此方法将特殊字符存储在数组中,通过遍历数组,使用 `indexOf` 方法检查字符串是否包含这些特殊字符。如果找到则返回 `true`,否则返回 `false` [^1]。 #### 方法二:遍历特殊字符字符串 ```javascript function hasSpecialStr(str){ var specialChars = "~·`!!@#$¥%^…&*()()—-_=+[]{}【】、|\\;:;:'\"“‘,./<>《》??,。"; var len = specialChars.length; for (var i = 0; i < len; i++){ if (str.indexOf(specialChars.substring(i, i + 1)) != -1){ return true; } } return false; } ``` 该方法将所有可能的特殊字符放在一个字符串中,通过循环遍历该字符串,使用 `indexOf` 方法检查字符串是否包含其中某个特殊字符。若找到则返回 `true`,否则返回 `false` [^2]。 #### 方法三:使用正则表达式 ```javascript function containSpecial(s) { var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/); return (containSpecial.test(s)); } ``` 此方法使用正则表达式来匹配字符串是否包含特殊字符。通过 `RegExp` 构造函数创建正则表达式对象,使用 `test` 方法对字符串进行匹配。如果匹配到特殊字符则返回 `true`,否则返回 `false` [^3][^4]。 #### 方法四:另一种正则表达式写法 ```javascript check = (str) => { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、? ]"); if (pattern.test(str)){ return true; } return false; } ``` 同样是使用正则表达式,通过 `new RegExp` 创建正则表达式对象,使用 `test` 方法检查字符串是否匹配。若匹配则返回 `true`,否则返回 `false` [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值