在我的html中有这样的东西:
<input type="text" data-validators="length(5,25);notNull();links(1);" />函数: length、notNull和links在我的验证类中。我正在使用jQuery获取这些函数
$(this).find('[data-validation]').each ->
validatorsString = $(this).attr "data-validation"
validatorsArray = validatorsString.split ";"
validatorsObject = new Validation($(this).val())
for v in validatorsArray
if typeof validatorsObject[v] == "function"
validatorsObject[v]当我不使用参数(arg1,arg2)但现在我想使用参数时,这种方法工作得很好。如何检查类中是否存在这些函数并使用参数执行(没有限制,可以是1,5,10个参数)
发布于 2013-05-26 23:57:43
由于不能以字符串形式动态调用带参数的函数(除非使用eval),要实现所需的功能,最好的方法是解析data-validation信息:
给定此字符串:validatorsString="length(5,25);notNull();links(1);",您可以使用正则表达式将其解析为函数名和参数:
validatorsString.replace(/([\w_$]+)\(([\w_$,]+)\)/g, (all, fn, args) ->
args = args.split ',' if args
if typeof validatorsObject[fn] is 'function'
validatorsObject[fn].apply validatorsObject, args
)https://stackoverflow.com/questions/16760246
复制相似问题