如何将此正则表达式行分成几行? [复制]
Posted
技术标签:
【中文标题】如何将此正则表达式行分成几行? [复制]【英文标题】:How to split this regexp line into several? [duplicate] 【发布时间】:2018-08-25 22:32:41 【问题描述】:使用过搜索,但真的不明白如何将这个长正则表达式拆分为几个更短的:
var isMobile = /android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
【问题讨论】:
你的“几个较短的”正则表达式会做什么? 使用RegExp
构造函数并构建您的字符串,例如从带有.join("|")
或任何你想要的方式的数组中。
请问您何时需要将正则表达式拆分为几个较短的正则表达式,如果这个有效?这对我来说似乎不合逻辑,但你可能有你的理由......
通常人们会问如何将它们合二为一......你想做什么来打破它?目的是什么?较小的会做什么?目前还不清楚你想要什么,特别是因为这是一个包含大量 ors 的基本 reg exp。
这很容易解释。这段代码工作得很好,但我尽量保持我的代码结构化,而且那行太长而且不适合屏幕。实际上,我不理解该代码,我从互联网上的另一个解决方案中获取了它,它对我来说非常有效。如果我明白我当然会使用构造函数或 smt else。我只想要这样的东西: var x = qwerty'\n'dfdfuiopl;但是串联不起作用。
【参考方案1】:
您的正则表达式非常好。但是,如果您想将其分解为几个简短的 if
,您可以执行以下操作(根本不使用正则表达式):
var s = "I'm on IPOD"
mobiles = ["Android", "webOS", "iPod"]
var isMobile = false
for (var i = 0; i < mobiles.length; i++)
if (s.toLowerCase().indexOf(mobiles[i].toLowerCase()) >= 0)
isMobile = true;
break;
window.alert(isMobile)
【讨论】:
你能看看这个jsfiddle.net/cktp5Lus @fxvlad - 我看过了。您的原始正则表达式没有任何问题,它完全符合它的要求。为什么要改变它? 感谢您的回复!是的,它工作得非常好,但我尽量保持我的代码结构化,而且这一行很长并且不适合屏幕,这就是我想要像连接一样的 smt,但这个 dpoes 不适用于正则表达式字符串。 看这里的答案:***.com/questions/12317049/…以上是关于如何将此正则表达式行分成几行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章