偶然にテキストがbase64でエンコードされているかどうかを確認できるjQueryプラグインを知っている人はいますか?私はbase64文字列をデコードできるようにしたいが、文字列が最初にエンコードされている場合にのみ、デコードすることができる。そこにはエンコードとデコードができるスクリプトがいくつかありますが、実際にはその文字列がエンコードされているかどうかを確認することができます。base64エンコーディングを検出する
このようなことはありますか?
偶然にテキストがbase64でエンコードされているかどうかを確認できるjQueryプラグインを知っている人はいますか?私はbase64文字列をデコードできるようにしたいが、文字列が最初にエンコードされている場合にのみ、デコードすることができる。そこにはエンコードとデコードができるスクリプトがいくつかありますが、実際にはその文字列がエンコードされているかどうかを確認することができます。base64エンコーディングを検出する
このようなことはありますか?
本当にjQueryプラグインでなければなりませんか?ただ、簡単なJavaScriptの正規表現の一致を使用します。RegEx to parse or validate Base64 data:
var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$");
// ...
if (base64Matcher.test(someString)) {
// It's likely base64 encoded.
} else {
// It's definitely not base64 encoded.
}
正規表現パターンは、この質問から取得されます。
いいえ..自分でエクステンションを作ることができます。ありがとうございました。 – Nick
一部のテキストでは失敗します。 "グレー"はベース64のエンコードされた文字ではありません。 – user2249160
それはまさに答えが「確かに」ではなく「可能性が高い」と答えた理由です。 – BalusC
上記の答えは、私のための文字列の最後に等号(=または==)で埋め込まれていませんでした。私はクエリを更新し、私のために以下の作業を行いました。
var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$");
私は、これは答えることが遅れるかもしれない知っているが、これは私がこれまでに思い付いたものです。この場合、私はjQueryで{match}を使用します。これは画像やテキストに適用されます。これは
var sSampleBase64Text = 'data:text/plain;base64,MSkgTG9naW4gRGV0YWlscwogPj4gdGNfYWRtaW5fYXllZQogPj4gdHdpbmtsZXMyMnRo';
var mCheckMatchResult = sSampleBase64Text.match(/^(?:[data]{4}:(text|image|application)\/[a-z]*)/);
var sAlertMessage = 'Valid base 64 encode string';
if (mCheckMatchResult === null || mCheckMatchResult.length <= 0) {
sAlertMessage = 'Not a valid base 64 encode string';
}
$('.result').append('<p>' + sAlertMessage + '</p>');
を役に立てば幸い、ここでこれをルックアップするために試してみてください。 https://jsfiddle.net/lajatomary/a8tugwe3/4/
関連Q:http://stackoverflow.com/questions/3355407/validate-string-is-base64-format-using-regex #3355534 – Incognito