Javascript RegEx语法Snafu

时间:2018-08-06 18:46:08

标签: javascript regex

我有一个字符串。我想允许使用大写字母,小写字母,数字和以下特殊字符:!$/%@#

我希望这会通过:abcABC123!
我希望这样会失败:abcABC123*

我尝试了以下代码:

var myString = 'abcABC123*'
// var myString = 'abcABC123!'

if (myString.match(/^[a-zA-Z0-9]!\$\/%@#/)) {
    alert('this works!');
} else {
    alert('Invalid Character');
}

现在坐在代码中,我总是按else语句。谦虚一点,我不是RegEx专家,也不是任何与此有关的专家。

注意:我将感谢您使用纯JavaScript解决方案。

2 个答案:

答案 0 :(得分:3)

检查代码段,将regEx模式更改为^[a-zA-Z0-9!%@#]+$/g,以便可以轻松使用

var myString = 'abcABC123%'
// var myString = 'abcABC123!'

if (myString.match(/^[a-zA-Z0-9!\%\$@#]+$/g )) {
    alert('this works!');
} else {
    alert('Invalid Character in your password');
}

答案 1 :(得分:2)

将这些字符添加到字符集中,并使用$声明字符串末尾的位置:

^[A-Za-z0-9!$/%@#]+$

检查正则表达式here

摘要:

var myString = 'abcABC123!'
    
    if (myString.match(/^[A-Za-z0-9!$/%@#]+$/)) {
        console.log('this works!');
    } else {
        console.log('Invalid Character');
    }

检查实时JavaScript小提琴here