繁体   English   中英

使用Regex阻止字符串中的特定特殊字符出现在任何地方?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM