检查字符串是否为base64

时间:2015-05-27 08:19:41

标签: ruby-on-rails ruby base64

我可能会收到这两个字符串:

ItemSource

我到目前为止所尝试的是用正则表达式i-e检查字符串。 @font-face { font-family: 'MyWebFont'; src: url('webfont.eot'); /* IE9 Compat Modes */ src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('webfont.woff2') format('woff2'), /* Super Modern Browsers */ url('webfont.woff') format('woff'), /* Pretty Modern Browsers */ url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */ url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */ } 但如果文件很大,这将非常重。

我也尝试了 base = Base64.encode64(File.open("/home/usr/Desktop/test", "rb").read) => "YQo=\n" string = File.open("/home/usr/Desktop/test", "rb").read => "a\n" /([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==$)/但两者都返回相同的内容。

我还看过this post并获得正则表达式解决方案,但是还有其他任何解决方案吗?

有什么想法吗?我只想得到的是字符串实际上是text或base64编码的文本....

1 个答案:

答案 0 :(得分:3)

你可以使用这样的东西,性能不是很好,但保证不会出现误报:

require 'base64'

def base64?(value)
  value.is_a?(String) && Base64.encode64(Base64.decode64(value)) == value
end