我正在尝试检查一个字符串是否包含^°<>#*~!"§$%?®©¶并使用了这种方法:string myString = "Test%";var format = /[^°<>#*~!"§$%?®©¶/g]+/;let checkIfContains = format.test(myString);但是当我使用多个单词时,它会失败,因为只有一个空格。删除空格后我还检查了空格和字符串长度,但我需要一个正则表达式或格式来解决这个问题。是否可以在 TypeScript 或 JavaScript 中执行此操作?
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
首先,全局修饰符 (/g) 应该放在正则表达式的最后(但如果你只是寻找任何匹配项,那么这里并不重要)。其次,^
紧随其后的符号[
被视为由 表示的字符集的 NOT 修饰符[]
,因此在这种情况下,它应该在元字符前面加上\
元字符,或者放在其他地方[]
。
所以找到任何这些字符的正确正则表达式是:
const regex = /[\^°<>#*~!"§$%?®©¶]+/;
正则表达式查找任何这些字符和多个空格有点棘手,因为我们需要在这里处理几种情况:
[空格][特殊字符][空格]
[空格][空格][特殊字符]
[特殊字符][空格][空格]
此外,中间可能还有一些其他字符
正则表达式来处理这个:
const regex = /(\s+.*[\^°<>#*~!"§$%?®©¶]+.*\s+|\s+.*\s+.*[\^°<>#*~!"§$%?®©¶]+|[\^°<>#*~!"§$%?®©¶]+.*\s+.*\s+)/;
添加回答
举报
0/150
提交
取消