我如何分解包含引号的字符串?
问题描述:
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。
使用.each有没有区别? – Tallboy
不,他们是完全一样的东西。我更喜欢用花括号来表示函数内部的块,因为更容易区分结束两个块的内容。 – roflmao
您可以更简洁并使用self.tokens_list.any? {| token | token.include? “'”} – Salil