我有以下代码


// this text box can contain a URL such as:
// http://vimeo.com/
// http://www.youtube.com/
// and so on.
var text = $('#myTextBox').val();
var providers = "youtube|flickr|viddler|qik|revision3|hulu|vimeo";

if( text.match(providers).length > -1) {  
  var selectedProvider = ???;
}

匹配方法看起来如果有匹配提供商列表的任何子串:的YouTube的Flickr,VIMEO等

我的问题是,其提供被匹配?

有帮助吗?

解决方案

可以捕获match结果,并获得相匹配的第一个元素:

var text = $('#myTextBox').val();
var match = text.match("youtube|flickr|viddler|qik|revision3|hulu|vimeo");

if (match) {
  var selectedProvider = match[0];
}

String.prototype.match 期望一个RegExp对象作为参数,但如果传递一个String,将与表达new RegExp(string)的结果来代替

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top