有誰知道一個jQuery插件,可以檢查文本是否是base64編碼偶然?我希望能夠解碼base64字符串,但只有在字符串編碼開始時才能解碼。我看到有幾個腳本可以編碼和解碼,但我真的可以檢查字符串是否被編碼。檢測base64編碼
這樣的事情是否存在?
有誰知道一個jQuery插件,可以檢查文本是否是base64編碼偶然?我希望能夠解碼base64字符串,但只有在字符串編碼開始時才能解碼。我看到有幾個腳本可以編碼和解碼,但我真的可以檢查字符串是否被編碼。檢測base64編碼
這樣的事情是否存在?
它真的是一個jQuery插件嗎?只需使用一個簡單的JavaScript正則表達式匹配:
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.
}
的正則表達式是由這個問題採取:RegEx to parse or validate Base64 data。
沒有..我可以自己做擴展。謝謝。 – Nick
某些文字失敗,例如「灰色」是一個base64編碼的字符,不是。 – 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/
相關問:http://stackoverflow.com/questions/3355407/validate-string-is-base64-format-using-regex #3355534 – Incognito