[英]Regex to prevent the same character from appearing more than 3 times in a row
[英]Prevent a specific special character from appearing ANYWHERE within a string with Regex?
我正在做一个非常非常简单的正则表达式,它是: /^.*@.*\\..*[az]$/i
我要尝试做的就是在其中扔东西,如果字符串中有<
或>
ANYWHERE,它将失败。
我最初的想法是:/ /^[^<>].*@.*\\..*[az]$/i
^<>].* /^[^<>].*@.*\\..*[az]$/i
,但这仅在<或>位于字符串的开头或结尾时失败。 有没有我缺少的简单命令,如果这些字符中的任何一个在字符串中的任何位置,它都会失败?
为什么要使用正则表达式? 这似乎有些矫kill过正,而正则表达式并不简单。
为什么不只使用includes()
函数呢?
!str.includes(">") && !str.includes("<")
您需要的RegExp只是简单的/<|>/
。 测试'not<ok>string'.match(/<|>/);
和'okstring'.match(/<|>/)
var okString = 'okstring'; var notOkString = 'not<ok>string'; if(okString.match(/<|>/)){ console.log('this won\\'t log'); } if(notOkString.match(/<|>/)){ console.log('this will log'); }
您可以在正则表达式中使用否定字符类而不是.*
:
/^[^<>]*@[^<>]*\.[^<>]*[a-z]$/i
[^<>]*
将匹配0个或多个非<
或>
字符
否则只是为了测试<
或>
存在,请使用:
var ret = /[<>]/.test(string); // true means presence of < or >
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.