首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何验证angularjs中只有特殊字符的正则表达式?

如何验证angularjs中只有特殊字符的正则表达式?
EN

Stack Overflow用户
提问于 2018-08-21 00:00:14
回答 2查看 2.4K关注 0票数 0

我必须对特定的文本值进行验证。如果字符串为空,我必须返回,因为请输入一些值。文本字段应允许字母数字字符和特殊字符.@_ .If用户输入任何其他特殊字符,不允许返回除.@_以外的特殊字符。如果他们只输入特殊字符,我必须返回‘不要输入特殊字符’?我尝试了下面的方法,但我没有工作。有什么可以帮忙的吗?

请在此处查看更新的代码。

代码语言:javascript
复制
const test1 = '[^A-Za-z0-9_||@||\. ]';
const test2 = '[A-Za-z0-9]';
const whitespace = '/^\s*$/';
const onlyspecial = '/[.@_ ]/';

if(strval.match(whitespace))
{
    return "Please enter value";
}
if(strval.match(test1))
{
    if(strval.match(test2)|| strval.match(onlyspecial))
    {
        return "special character except @,space,underscore and . not allowed";
    }
    else
    {
        return "do not enter only special char";
    }
}

Results for various input:

strval = "abcd@123" - pass
strval = "abcd_123" - pass
strval= "abcd test" - pass
strval = "abcd.test - pass
strval = .@_   - do not enter only special char (though it is acceptable characters, only entering these should not accept)
strval = "abcd$%^" - special character except @,space,underscore and . not allowed
strval = "abcs2323&&" - special character except @,space,underscore and . not allowed
strval = "$$$%%^&&"  - do not enter only special char
strval = ".@_1234"  - please enter valid name
EN

回答 2

Stack Overflow用户

发布于 2018-08-21 06:32:08

替换console.log(...)有了return,它应该可以工作了。

代码语言:javascript
复制
var strVal = 'Abcd';

const onlySpecial = /[@_.]/
const alphaNumeric = /[A-Za-z0-9]/
const alphaNumericSpecial = /[^A-Za-z0-9@_.]/

if (strVal == '') {
    console.log("Nop")
} else if (alphaNumericSpecial.test(strVal)) {
    console.log("Only Alphanumeric and @, _, .")
}

else {
    if (onlySpecial.test(strVal) && alphaNumeric.test(strVal)) {
    console.log("Good Character.")
    } else if (onlySpecial.test(strVal) && !alphaNumeric.test(strVal)) {
    console.log("Don't Enter only special character.")
    } else {
    console.log("Alphanumeric..")
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-08-21 06:40:42

代码语言:javascript
复制
     const test1 = '[^A-Za-z0-9 \S||@||\.||_]';
     const test2 = '[A-Za-z0-9]';
     const whiteSpace = /^\s*$/;


      if (strValue.match(whiteSpace)){
           return "Please enter value";
      }else if (strValue.match(test1)) {
           return "Please enter valid name (except .@_ )";
      }else if (!strValue.match(test2)){
           return "Don't enter only special characters";
      }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51934512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档