[英]javascript regex for special characters
我正在尝试为仅允许a-zA-Z0-9
字符和.!@#$%^&*()_+-=
的密码字段创建验证
我似乎无法掌握它。
使用regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/
以及来自.!@#$%^&*()_+-=
的字符有什么区别需要逃脱吗?
到目前为止我尝试过的是:
var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g
但没有成功
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g
应该管用
也可能需要最小长度,即 6 个字符
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g
一种匹配特殊字符的更简洁的方法:
/\W|_/g
\\W匹配任何不是单词字符(字母数字和下划线)的字符。
下划线被视为特殊字符,因此添加布尔值以匹配特殊字符或 _
您可以通过测试无效字符来具体说明。 对于非字母数字和空格的任何内容,这将返回 true:
var specials = /[^A-Za-z 0-9]/g;
return specials.test(input.val());
这个怎么样:-
var regularExpression = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,}$/;
它将允许至少 6 个字符,包括数字、字母和特殊字符
上面写的正则表达式存在一些问题。
这完美地工作。
^[a-zA-Z\d\-_.,\s]+$
此处仅包含允许的特殊字符,并且可以在逗号后扩展。
完整的特殊字符集:
/[\!\@\#\$\%\^\&\*\)\(\+\=\.\<\>\{\}\[\]\:\;\'\"\|\~\`\_\-]/g
回答你的问题:
var regular_expression = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\)\(+\=\._-]+$/g
最少 8 个字符、一个字母、一个数字和一个特殊字符的正则表达式:
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$/
这个正则表达式很适合我验证密码:
/[ !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/
此特殊字符列表(包括空格和标点符号)取自此处: https : //www.owasp.org/index.php/Password_special_characters 。 它稍微改变了一点,导致反斜杠 ('\\') 和右括号 (']') 必须被转义,才能使正则表达式正常工作。 这就是添加两个额外反斜杠字符的原因。
// Regex for special symbols
var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;
这是实际的正则表达式唯一匹配:
/[-!$%^&*()_+|~=`{}[:;<>?,.@#\]]/g
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;
}
此函数只允许使用字母,包括小写和大写以及 - 和 ' 字符。 可以帮助你建立你的。
您可以使用它来查找和替换任何特殊字符,例如 Worpress 的 slug
const regex = /[`~!@#$%^&*()-_+{}[\]\\|,.//?;':"]/g
let slug = label.replace(regex, '')
好吧,这在 React Native 中对我有用:) 这是我对特殊字符列表的参考: https : //owasp.org/www-community/password-special-characters
[~_!@#$%^&*()\\[\\],.?":;{}|<>=+()-\\s\\/`']
如果我们只需要允许数字和符号(- 和。)那么我们可以使用以下模式
const filterParams = {
allowedCharPattern: '\\d\\-\\.', // declaring regex pattern
numberParser: text => {
return text == null ? null : parseFloat(text)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.