在 ruby 中的第二个逗号处拆分
Split on second comma in ruby
为 "not so great questions" 道歉。当您闭上眼睛但您的大脑一直在思考代码时,就会发生这种情况。
这一点让我很困惑。我想用逗号拆分一个字符串以使其成为一个数组,或者......在一个字符串中。
我有一个如下所示的状态数组:
因此,当我使用 params[:file].split(",")
时,我会收到 data:image/jpeg;base64
的句柄错误,因为当代码本身正确时,它会在第一个逗号处拆分。一个愚蠢的问题,你能在 ruby 中的第二个逗号上拆分吗?
数组如下:["data:image/jpeg;base64,/9j/xxxxxx,data:image/jpeg;base64,/9j/xxxxxx"]
我的输入看起来像这样,我尝试了 file[]
、file[][]
的多种变体
<input type="hidden" name="file" value={this.state.files} />
我已经使用 concat
获取数组。
params[:files].split(",").each_slice(2).map { |top| "#{top.first},#{top.last}"}
基本上您可以像往常一样用“,”拆分,然后将每两个元素合并在一起:)
str = '["data:image/jpeg;base64,/9j/xxxxxx,data:image/jpeg;base64,/9j/xxxxxx"]'
str.split(",").each_slice(2).map{ |top| "#{top.first},#{top.last}"}
=> ["[\"data:image/jpeg;base64,/9j/xxxxxx", "data:image/jpeg;base64,/9j/xxxxxx\"]"]
您还可以在发送到 Rails 之前以不同的方式序列化文件数组。
发送文件的代码是什么样的?
如果有的话,你能像这样用一些独特的分隔符加入吗?
makeRequest({ file: this.state.files.join('---') });
然后与 Ruby
中的拆分
params[:file].split('---')
result = []
incoming_data.gsub(/"data:\S+"/) {|member| result << member}
也许这样...
str = "Now is the time for citizens, every last one, to revolt, without delay."
i1 = str.index(',')
i2 = i1 + 1 + str[i1+1..-1].index(',')
[str[0..i2-1], str[i2+1..-1]]
# => ["Now is the time for citizens, every last one",
# "to revolt, without delay."]
为 "not so great questions" 道歉。当您闭上眼睛但您的大脑一直在思考代码时,就会发生这种情况。
这一点让我很困惑。我想用逗号拆分一个字符串以使其成为一个数组,或者......在一个字符串中。
我有一个如下所示的状态数组:
因此,当我使用 params[:file].split(",")
时,我会收到 data:image/jpeg;base64
的句柄错误,因为当代码本身正确时,它会在第一个逗号处拆分。一个愚蠢的问题,你能在 ruby 中的第二个逗号上拆分吗?
数组如下:["data:image/jpeg;base64,/9j/xxxxxx,data:image/jpeg;base64,/9j/xxxxxx"]
我的输入看起来像这样,我尝试了 file[]
、file[][]
<input type="hidden" name="file" value={this.state.files} />
我已经使用 concat
获取数组。
params[:files].split(",").each_slice(2).map { |top| "#{top.first},#{top.last}"}
基本上您可以像往常一样用“,”拆分,然后将每两个元素合并在一起:)
str = '["data:image/jpeg;base64,/9j/xxxxxx,data:image/jpeg;base64,/9j/xxxxxx"]'
str.split(",").each_slice(2).map{ |top| "#{top.first},#{top.last}"}
=> ["[\"data:image/jpeg;base64,/9j/xxxxxx", "data:image/jpeg;base64,/9j/xxxxxx\"]"]
您还可以在发送到 Rails 之前以不同的方式序列化文件数组。
发送文件的代码是什么样的?
如果有的话,你能像这样用一些独特的分隔符加入吗?
makeRequest({ file: this.state.files.join('---') });
然后与 Ruby
中的拆分params[:file].split('---')
result = []
incoming_data.gsub(/"data:\S+"/) {|member| result << member}
也许这样...
str = "Now is the time for citizens, every last one, to revolt, without delay."
i1 = str.index(',')
i2 = i1 + 1 + str[i1+1..-1].index(',')
[str[0..i2-1], str[i2+1..-1]]
# => ["Now is the time for citizens, every last one",
# "to revolt, without delay."]