【发布时间】:2011-03-03 03:38:32
【问题描述】:
我知道有诸如|“OR 运算符”之类的逻辑运算符可以这样使用:
earth|world
我想知道如何检查我的字符串是否包含地球和世界。
问候, 亚历山大
【问题讨论】:
标签: javascript regex
我知道有诸如|“OR 运算符”之类的逻辑运算符可以这样使用:
earth|world
我想知道如何检查我的字符串是否包含地球和世界。
问候, 亚历山大
【问题讨论】:
标签: javascript regex
如果它包含地球和世界,它包含一个接一个,所以:
earth.*world|world.*earth
一个较短的替代方案(使用扩展的正则表达式语法)是:
/(?=.*earth)(?=.*world).*/
但它一点也不像and 运算符。你只能做or,因为如果只包含一个单词,则不涉及排序。如果您想同时拥有它们,则需要指明顺序。
【讨论】:
/^(?=.*?earth)(?=.*?world)/ 会更好。
这里提出并回答了这个问题:
Regular Expressions: Is there an AND operator?
没有直接的“与”运算符,但您可以继续进行表达式测试并确保第二个表达式也是匹配的。
【讨论】:
做两个测试,如果第一个失败,第二个不在 javascript 中执行。例如
var hasBoth = /earth/i.test(aString) && /world/i.test(aString);
【讨论】:
你实际上不需要 & 运算符 |操作员完成工作
let string = 'world and earth are awesome';
let regex = /world|earth/ig;
let result = string.replace(regex, '...');
console.log(string);
console.log(result);
【讨论】: