繁体   English   中英

如何在排除某些字符的同时正则表达式测试字符串的模式?

[英]How to regex test a string for a pattern while excluding certain characters?

我对此一无所知...

我需要测试一个字符串是否包含%2并且同时不包含/ 我不能使它使用正则表达式工作。 这是我所拥有的:

var re = new RegExp(/.([^\/]|(%2))*/g);
var s = "somePotentially%2encodedStringwhichMayContain/slashes";

console.log(re.test(s))  // true

问题
我如何编写一个正则表达式来检查字符串是否包含%2而不包含任何/斜杠?

请尝试以下操作:

^(?!.*/).*%2

尽管Sebastian S.所指的链接是正确的,但是有一种更简单的方法可以执行此操作,因为您只需要检查字符串中是否没有单个字符即可。

/^[^\/]*%2[^\/]*$/

在此处输入图片说明

编辑:太晚了...哦,很好:P

都可以使用逆匹配,如下所示: 正则表达式匹配不包含单词的行?

或在if语句中使用indexOf(char)。 indexOf返回字符串或char在字符串中的位置。 如果找不到,它将返回-1:

var s =“ test /”; if(s.indexOf(“ /”)!=-1){

//包含“ /”

}其他{

//不包含“ /”}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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