Javascript 如果符合条件,则匹配整个单词
如何仅基于这一个条件获取整个example.com链接?我只需要链接,不需要文本Javascript 如果符合条件,则匹配整个单词,javascript,Javascript,如何仅基于这一个条件获取整个example.com链接?我只需要链接,不需要文本 因此,预期的结果将是example.com/?isExample=true我发现这样对我最有效: let str = 'text text example.com/?isExample=true more text' if (str.match(/.com/i)) { ... } 我发现这样对我最有效: let str = 'text text example.com/?isExample=true more
因此,预期的结果将是
example.com/?isExample=true
我发现这样对我最有效:
let str = 'text text example.com/?isExample=true more text'
if (str.match(/.com/i)) {
...
}
我发现这样对我最有效:
let str = 'text text example.com/?isExample=true more text'
if (str.match(/.com/i)) {
...
}
这里有一个解决方案:使用一个积极的前瞻断言,
(?=…[此处的条件]…)
,然后是要匹配的整个模式
let str='text-text-example.com/?isExample=true-more-text'
log(str.match(/(?=\S*\.com)\S+/i))代码>这里有一个解决方案:使用积极的前瞻断言,(?=…[此处的条件]…)
后跟要匹配的整个模式
let str='text-text-example.com/?isExample=true-more-text'
log(str.match(/(?=\S*\.com)\S+/i))代码>您可以使用\S+\.com。\S+
let re=new RegExp(/\S+\.com.\S+/),
str=“text-text-example.com/?isExample=true-more-text”,
结果=str.match(re);
控制台日志(结果)代码>您可以使用\S+\.com。\S+
let re=new RegExp(/\S+\.com.\S+/),
str=“text-text-example.com/?isExample=true-more-text”,
结果=str.match(re);
控制台日志(结果)代码>您可以使用以下正则表达式
let str='text text-text-example.co.in/?isExample=true&y=3更多文本'
设res=str.match(/\w+(\.[a-z]{2,3})+\/?\??(\w+=\w+&?*/)[0];
console.log(res)
您可以使用以下正则表达式
let str='text text-text-example.co.in/?isExample=true&y=3更多文本'
设res=str.match(/\w+(\.[a-z]{2,3})+\/?\??(\w+=\w+&?*/)[0];
console.log(res)
或使用现有库,例如linkify js或twitter text(from),或使用现有库,例如linkify js或twitter text(from).co.in
.uk
等?@AZ_u.我认为这不在问题的范围之内。显然,这种模式不会匹配所有可能的域名。虽然如果这些特定领域是您需求的一部分,您当然可以使用/(?=\S*(\.com\\.co\.in\\.uk))\S+/i
,我同意这一点。但是为什么不简单的/\S*\.com\S*/
?为什么要向前看?@AZ_u我同意,这是一个更简单的解决方案,这可能就是我在自己的代码中针对这个特定情况所使用的方法。然而,我最初把这个问题理解为一个更一般的问题——给定模式,x
和y
,只有当它们也满足y
时,如何匹配x
的实例,在这种情况下,您会使用(?=zy)x
,其中z
是x
的前缀。即使OP的自我回答表明他/她能够在没有高级正则表达式的情况下解决这个问题,这个答案可能对未来的读者仍然有帮助,因为它引入了lookaheads作为一个概念,将两种模式叠加在一起。那么.co.in
.uk
等呢?@AZ_u我认为这不在问题的范围之内。显然,这种模式不会匹配所有可能的域名。虽然如果这些特定领域是您需求的一部分,您当然可以使用/(?=\S*(\.com\\.co\.in\\.uk))\S+/i
,我同意这一点。但是为什么不简单的/\S*\.com\S*/
?为什么要向前看?@AZ_u我同意,这是一个更简单的解决方案,这可能就是我在自己的代码中针对这个特定情况所使用的方法。然而,我最初把这个问题理解为一个更一般的问题——给定模式,x
和y
,只有当它们也满足y
时,如何匹配x
的实例,在这种情况下,您会使用(?=zy)x
,其中z
是x
的前缀。即使OP的自我回答表明他/她能够在没有高级正则表达式的情况下解决这个问题,这个回答对未来的读者仍然有帮助,因为它引入了lookaheads作为一个将两个模式叠加在一起的概念。