的JavaScript。检查是否字符串包含的子字符串数组文字 [英] Javascript. Checking if string contains text from an array of substrings

查看:203
本文介绍了的JavaScript。检查是否字符串包含的子字符串数组文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

pretty直线前进。在JavaScript中,我需要检查,如果一个字符串包含在一个数组持有的任何子。

Pretty straight forward. In javascript, I need to check if a string contains any substrings held in an array.

推荐答案

有什么内置的,将做到这一点给你,你必须写一个函数吧。

There's nothing built-in that will do that for you, you'll have to write a function for it.

如果您的知道的字符串不包含任何,在普通的前pressions特殊的人物,那么你可以欺骗了一下,像这样的:

If you know the strings don't contain any of the characters that are special in regular expressions, then you can cheat a bit, like this:

if (new RegExp(substrings.join("|")).test(string)) {
    // At least one match
}

这将创建一个普通的前pression这是一个系列... 交替的你正在寻找(例如,一个子|两个),并测试,看看是否有任何人的比赛,但如果任何一个子字符串包含在正则表达式特殊(任何字符 * [等),你就必须先逃避他们,你最好只是在做枯燥的循环来代替。

...which creates a regular expression that's a series of alternations for the substrings you're looking for (e.g., one|two) and tests to see if there are matches for any of them, but if any of the substrings contains any characters that are special in regexes (*, [, etc.), you'd have to escape them first and you're better off just doing the boring loop instead.

无偿

更新

在关于这个问题的评论,马丁询问有关新的阵列#地图在ECMAScript5功能。 地图是不是所有的太大的帮助,但部分是:

In a comment on the question, Martin asks about the new Array#map function in ECMAScript5. map isn't all that much help, but some is:

if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
    // There's at least one
}

活生生的例子(只适用于现代的浏览器)

Live example (Only works on modern browsers)

你要知道,它确实意味着一些开销,而你只需要它符合ECMAScript5的实现(所以,不是IE7或更早的版本,例如,也许甚至没有IE8),但仍然如果你真的进了那个风格编程...(你可以使用一个ECMAScript5垫片,这个或任何其他几个人的。)

Mind you, it does mean some overhead, and you only have it on ECMAScript5-compliant implementations (so, not IE7 or earlier, for instance; maybe not even IE8), but still if you're really into that style of programming... (And you could use an ECMAScript5 shim, this one or any of several others.)

这篇关于的JavaScript。检查是否字符串包含的子字符串数组文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆