Javascript regexp逻辑与或

Javascript regexp逻辑与或,javascript,regex,Javascript,Regex,我知道有一些逻辑运算符,如|“OR运算符”,可以这样使用: earth|world 我想知道我怎么能检查我的字符串是否包含地球和世界 问候,, 亚历山大这个问题是在这里提出并回答的: 没有直接的“and”运算符,但您可以继续表达式测试,并确保第二个表达式也是匹配的。如果它包含地球和世界,则它将一个接一个地包含,因此: earth.*world|world.*earth 较短的备选方案(使用扩展正则表达式语法)是: /(?=.*earth)(?=.*world).*/ 但它根本不像和操作符

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

earth|world
我想知道我怎么能检查我的字符串是否包含地球和世界

问候,,
亚历山大

这个问题是在这里提出并回答的:


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

如果它包含地球和世界,则它将一个接一个地包含,因此:

earth.*world|world.*earth
较短的备选方案(使用扩展正则表达式语法)是:

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

但它根本不像
操作符。您只能执行
,因为如果只包含一个单词,则不涉及排序。如果你想两者都有,你需要指出顺序。

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

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

你不需要操作员,实际上是操作员做的

let string='世界和地球太棒了';
让regex=/world | earth/ig;
让result=string.replace(regex,“…”);
console.log(字符串);

控制台日志(结果)重复我不会称第二个版本为hackish-相反,特别是当涉及两个以上的条件时,我发现顺序查找变得更加简单。这个正则表达式看起来可能执行得非常糟糕,
/^(?=.*earth)(?=.*world)/
会更好。并不总是方便,如果知道如何使用一个正则表达式来实现这一点,那将是一件很好的事情