javascript正则表达式的特殊字符

时间:2013-09-15 12:22:30

标签: javascript regex

我正在尝试为密码字段创建验证,该字段仅允许a-zA-Z0-9字符和.!@#$%^&*()_+-=

我似乎无法理解它。

使用regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/时有什么区别,需要转发来自.!@#$%^&*()_+-=的字符?

我现在尝试的是:

var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g

但没有成功

13 个答案:

答案 0 :(得分:40)

var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g

应该工作

也可能想要最小长度,即6个字符

var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g

答案 1 :(得分:9)

  

有什么区别?

/[a-zA-Z0-9]/是一个character class,它匹配类中的一个字符。它由三个范围组成。

/a-zA-Z0-9/表示这9个字符的字面序列。

  

需要转发.!@#$%^&*()_+-=中的哪些字符?

在一个字符类中,只有减号(如果不是在结尾处)和抑扬符(如果在开头)。在charclass之外,.$^*+()具有特殊含义,需要进行转义才能完全匹配。

  

仅允许a-zA-Z0-9字符和.!@#$%^&*()_+-=

将它们放入角色类中,然后让它们repeat并要求anchors将整个字符串与它们匹配:

var regex = /^[a-zA-Z0-9!@#$%\^&*)(+=._-]*$/

答案 2 :(得分:9)

一种匹配特殊字符的简单方法:

/\W|_/g

\ W 匹配任何不是单词字符的字符(字母数字和下划线)。

下划线被认为是一个特殊角色 添加布尔值以匹配特殊字符或_

答案 3 :(得分:4)

这个怎么样: -

var regularExpression = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,}$/;

它将允许至少6个字符,包括数字,字母和特殊字符

答案 4 :(得分:4)

上面写的Regex存在一些问题。

这很有效。

^[a-zA-Z\d\-_.,\s]+$

此处仅包含允许的特殊字符,逗号后可以扩展。

答案 5 :(得分:1)

// Regex for special symbols

var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;

答案 6 :(得分:1)

这是真正的正则表达式唯一匹配:

/[-!$%^&*()_+|~=`{}[:;<>?,.@#\]]/g

答案 7 :(得分:0)

至少8个字符,一个字母,一个数字和一个特殊字符的正则表达式:

/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$/

答案 8 :(得分:0)

此正则表达式非常适合我验证密码:

/[ !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/

此特殊字符列表(包括空格和标点符号)取自此处:https://www.owasp.org/index.php/Password_special_characters。对其进行了一些更改,因为必须使用反斜杠('\')和右括号(']')才能使正则表达式正常工作。这就是为什么添加了两个额外的反斜杠字符的原因。

答案 9 :(得分:0)

您可以通过测试无效字符来具体说明。对于任何非字母数字和空格的内容,将返回true:

var specials = /[^A-Za-z 0-9]/g;
return specials.test(input.val());

答案 10 :(得分:0)

完整的特殊字符集:

/[\!\@\#\$\%\^\&\*\)\(\+\=\.\<\>\{\}\[\]\:\;\'\"\|\~\`\_\-]/g

回答您的问题:

var regular_expression = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\)\(+\=\._-]+$/g

答案 11 :(得分:0)

function nameInput(limitField)
{
//LimitFile here is a text input and this function is passed to the text 
onInput
var inputString = limitField.value;
// here we capture all illegal chars by adding a ^ inside the class,
// And overwrite them with "".
var newStr = inputString.replace(/[^a-zA-Z-\-\']/g, "");
limitField.value = newStr;
}

此功能仅允许使用字母,小写和大写以及-和'字符。可能会帮助您建立自己的。

答案 12 :(得分:0)

您可以使用它来查找和替换任何特殊字符,例如 Worpress 的 slug

const regex = /[`~!@#$%^&*()-_+{}[\]\\|,.//?;':"]/g
let slug = label.replace(regex, '')