我如何分解包含引号的字符串?

问题描述:

http://loopj.com/jquery-tokeninput/我如何分解包含引号的字符串?

我一起工作的代码是从jQuery的tokeninput叉,它允许在框中输入多个新的令牌(不只是已经存在的)。它当他们点击提交返回字符串的格式是这样的:

16,42,'Subway',37,'McDonald\'s',734.

这些都是存在的,而对于那些不存在,它们封装在“引号”的标记ID号。

我的问题是如何更改我的new_custom_tokens方法来解释他们是否输入了新的令牌(不检查它是否在引号中)。最终它将检查他们的账户是否足够大以添加新的标签,然后我需要运行Tag.new我假设(所以它只保存它,当它们完全有效时,包括资源验证)

编辑:I也觉得我需要某种验证。如果我理解正确的,你这不会报价

resource.rb

def tag_tokens=(tokens) 
    self.tokens_list = tokens.split(",") 

    if new_custom_tokens? 
     custom_token_time_restriction 
    else 
     self.tag_ids = self.tokens_list 
    end 
    end 


    def new_custom_tokens? 
    if self.token_list ... #... not sure 
    end 


    def add_new_tag_time_restriction 
    # TODO: Check if they are anonymous or their account is newer than 7 days 
    end 

内分裂的事情,这应该做的伎俩:

def new_custom_tokens? 
    self.tokens_list.each { |token| 
    return true if token.include? "'" 
    } 
    false 
end 

基本上它通过token_list数组循环,如果任何令牌具有'字符,则返回true。

+0

使用.each有没有区别? – Tallboy

+0

不,他们是完全一样的东西。我更喜欢用花括号来表示函数内部的块,因为更容易区分结束两个块的内容。 – roflmao

+0

您可以更简洁并使用self.tokens_list.any? {| token | token.include? “'”} – Salil