javascript - 防止字符串中出现特殊字符

标签 javascript angularjs regex

我有这个正则表达式,我需要防止密码包含以下任何符号:!@#$%^&*()_ ,它正在为!@#$%工作但不适用于此密码 !@#$%D .

$scope.matchPatternPassword = new RegExp("[^!@#$%^&*()_]$");

最佳答案

您的正则表达式仅检查字符串末尾的任何符号,这就是以字母结尾的符号有效的原因。

正则表达式应该是:

$scope.matchPatternPassword = /^[^!@#$%^&*()_]+$/;

这会匹配任何不包含任何这些字符的字符串。

这是一个工作示例:https://regexr.com/3nh9f

const regex = /^[^!@#$%^&*()_]+$/;

const passwords = [
	'!@#$%',
	'!@#$%D',
	'yes',
	'valid-password',
	'im-valid-too',
	'invalid$',
	'super!-invalid',
	'mypassword'
];

console.log(passwords.filter(password => regex.test(password)));

关于javascript - 防止字符串中出现特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714241/

相关文章:

javascript - jQuery 函数在 $(window).resize() 或 $(document).ready() 上执行,但不能同时执行

javascript - ionic /Angular Directive(指令)绑定(bind)到滚动

javascript - AngularJS 和 ui-view 导致无限递归

javascript - 从 Web API 加载数据后如何将文件管理器添加到页面?

ruby - 括起括号

python - 正则表达式匹配后选择文本

javascript - 打印从a到b的素数,a到b是用户使用javascript输入的值

javascript - 在 javascript 中设置变量以在另一种形式中使用

javascript - URL 正则表达式在 javascript 中不起作用

Javascript:根据单击的按钮运行脚本