我一直在尝试制作以2个特殊字符结尾的正则表达式,但我无法找到解决方案。这是我尝试过的,但似乎它没有用。
/.[!@#$%^&*]{2}+$/;
提前致谢。
答案 0 :(得分:1)
试试这个正则表达式:
^.*[!@#$%^&*]{2}$
const regex = /^.*[!@#$%^&*]{2}$/;
const str = `abc@#\$`;
let m;
if(str.match(regex)) {
console.log("matched");
}
else
console.log("not matched");

答案 1 :(得分:0)
/.[!@#$%^&*]{2}+$/
正则表达式匹配
.
- 除了换行符之外的任何字符[!@#$%^&*]{2}+
- 在PCRE / Boost / Java / Oniguruma和支持占有量词的其他正则表达式引擎中,它恰好匹配定义集合中的2辆汽车,但在JS中,它会导致“无需重复”错误$
- 字符串结束。要匹配从定义的集合中以2次出现的字符结尾的任何字符串,您需要删除.
和+
并使用
console.log(/[!@#$%^&*]{2}$/.test("#@"))
或者,如果这两个字符不能以第三个字符开头:
console.log(/(?:^|[^!@#$%^&*])[!@#$%^&*]{2}$/.test("#@"))
// ^^^^^^^^^^^^^^^^^
(?:^|[^!@#$%^&*])
非捕获组匹配字符串的开头(^
)或(|
)除!
,@
,{{之外的任何字符。 1}},#
,$
,%
,^
,&
(*
)