区分路径字符串和标记字符串

Distinguish between path and markup strings

本文关键字:字符串 路径      更新时间:2024-02-27

我有一个javascript方法,它只接受一个参数。该参数可以是路径(在这种情况下,函数将使用ajax解析变量)、函数(将被调用以解析变量)或有效标记(将直接使用)。

我正在寻找区分表示路径的字符串和表示标记的字符串的建议。

注意:我不太担心标记是否无效

如果你一直使用你得到的函数,那么你就必须使用正则表达式来确定你得到了什么。问题是,它可能容易出错。

你最好传入一个对象,让对象根据它的属性告诉你你有什么。

function myMethod( obj ) {
    if (obj.path) {
        console.log("I have a path:", obj.path);
    } else {
        console.log("I have a path:", obj.html);
    }
}
myMethod({"path":"/foo/bar/"});
myMethod({"html":"<p>/foo/bar/</p>"});

您可以使用这样的东西:

function validate(param) {
   if (typeof(param) == 'function') {
       console.log('It is a function!')
   } else if (typeof(param) == 'string') {
      if (param.indexOf('http') == 0) {
          console.log('It is a path!')
      } else {
          console.log('It is a markup!')
      }
   }
}

这远非完美(尤其是在Path部门),但这只是一个起点。

演示:http://jsfiddle.net/4369k/