47

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

我似乎无法掌握它。

使用时有什么区别以及需要转义regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/哪些字符?.!@#$%^&*()_+-=

我到目前为止尝试的是:

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

但没有成功

4

14 回答 14

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

Should work

Also may want to have a minimum length i.e. 6 characters

var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g
于 2013-09-15T12:24:56.927 回答
36

匹配特殊字符的更简洁的方法:

/\W|_/g

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

下划线被视为特殊字符,因此添加布尔值以匹配特殊字符或 _

于 2018-04-17T08:57:21.433 回答
13

有什么不同?

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

/a-zA-Z0-9/确实意味着这 9 个字符的字面顺序。

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

在字符类中,只有减号(如果不在末尾)和抑扬符(如果在开头)。在 charclass 之外,.$^*+()具有特殊含义,需要转义以匹配字面意思。

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

然后将它们放在一个字符类中,让它们重复并要求通过锚点将整个字符串与它们匹配:

var regex = /^[a-zA-Z0-9!@#$%\^&*)(+=._-]*$/
于 2013-09-15T12:37:09.030 回答
10

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

var specials = /[^A-Za-z 0-9]/g;
return specials.test(input.val());
于 2019-06-21T14:59:03.347 回答
7

How about this:-

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

It will allow a minimum of 6 characters including numbers, alphabets, and special characters

于 2013-09-15T12:28:31.673 回答
7

完整的特殊字符集:

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

要回答您的问题:

var regular_expression = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\)\(+\=\._-]+$/g
于 2019-08-07T15:18:42.837 回答
5

上面写的正则表达式有一些问题。

这完美地工作。

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

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

于 2014-04-24T09:53:37.710 回答
3
// Regex for special symbols

var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;
于 2015-01-21T00:32:33.347 回答
3

这个正则表达式很适合我验证密码:

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

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

于 2019-06-14T14:30:41.820 回答
3

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

/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$/
于 2019-04-23T09:16:39.323 回答
2

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

/[-!$%^&*()_+|~=`{}[:;<>?,.@#\]]/g
于 2018-05-24T03:50:59.437 回答
0

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

const regex = /[`~!@#$%^&*()-_+{}[\]\\|,.//?;':"]/g
let slug = label.replace(regex, '')
于 2021-02-10T16:11:27.387 回答
0

这在 React Native 中对我有用:

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

这是我对特殊字符列表的参考:

于 2021-11-30T13:29:17.443 回答
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;
}

此函数仅允许使用字母,包括小写和大写以及 - 和 ' 字符。可以帮助你建立你的。

于 2020-06-13T23:42:36.277 回答