我有两种初始化方法:initXML(url)
和initJSON(url)
,它们接受url参数。该参数必须是一个url字符串,根据函数指向XML或JSON文件。
我想要做的是只有一个名为init(url)
的方法接受url参数,然后根据url参数字符串的文件类型调用initXML()
或initJSON()
。 / p>
e.g。如果url参数类似于'content/file.json'
调用initJSON(),如果它是'other/file.xml'
则调用initXML(),如果另一个文件类型返回错误。
我怎么知道这个?
提前致谢。
答案 0 :(得分:2)
function init(url)
{
if ( url.match(/\.json$/i) )
{
initJSON();
}
else if ( url.match(/\.xml$/i) )
{
initXML();
}
else
{
throw "Unknown file type";
}
}
答案 1 :(得分:0)
非常快速执行此操作的方式是假设您的网址中唯一的句点位于文档类型之前的结尾:
var type = url.split('.');
type = type[1];
然后type
变量可以是'json'
或'xml'
。
更简单的系统是使用正则表达式:
var type = /\.(xml|json)$/.exec(url);
type = type[1];
答案 2 :(得分:0)
你可以使用这样的正则表达式:
var isJSON = /\.json$/i;
var isXML = /\.xml$/i;
if( isJSON.test( url ) == true )
initJSON()
else if( isXML.test( url ) == true )
initXML()
else
return( 'error' );