正则表达式逻辑和或

时间:2011-03-03 03:38:33

标签: javascript regex

我知道有一些逻辑运算符,例如|“OR运算符”可以像这样使用:

earth|world

我想知道如何检查我的字符串是否包含地球和世界。

的问候, 亚历山大

4 个答案:

答案 0 :(得分:39)

如果它包含earth AND world,则它包含一个接一个,所以:

earth.*world|world.*earth

更短的替代方法(使用扩展的正则表达式语法)将是:

/(?=.*earth)(?=.*world).*/

但它根本不像and运算符。您只能or,因为如果只包含其中一个字,则不会涉及排序。如果您想同时使用它们,则需要指明订单。

答案 1 :(得分:4)

这个问题在这里得到了回答:

Regular Expressions: Is there an AND operator?

没有直接的“和”运算符,但您可以继续进行表达式测试并确保第二个表达式也匹配。

答案 2 :(得分:4)

做两个测试,如果第一个失败,第二个不在javascript中执行。 e.g。

var hasBoth = /earth/i.test(aString) && /world/i.test(aString);

答案 3 :(得分:0)

您实际上不需要&运算符|操作员完成工作

let string = 'world and earth are awesome';
let regex = /world|earth/ig;

let result = string.replace(regex, '...');

console.log(string);
console.log(result);