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

我希望这会通过: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解决方案。

最佳答案

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

^[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

09-18 04:37