Определить кодировку base64 - PullRequest
       14

Определить кодировку base64

5 голосов
/ 20 августа 2011

Кто-нибудь знает плагин jQuery, который может проверить, является ли текст base64 случайно закодированным? Я хочу иметь возможность декодировать строки base64, но только если строка кодируется для начала. Я вижу несколько сценариев, которые могут кодировать и декодировать, но я действительно один, который может проверить, закодирована ли строка.

Существует ли такая вещь?

Ответы [ 3 ]

12 голосов
/ 20 августа 2011

Должен ли это быть плагин 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 для анализа или проверки данных Base64 .

3 голосов
/ 23 сентября 2013

Приведенный выше ответ для меня не учитывался для заполнения со знаком равенства (= или ==) в конце строки.Я обновил запрос, и у меня работает следующее:

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})?$");

0 голосов
/ 26 февраля 2017

Я знаю, что может быть поздно, чтобы ответить, но это то, что я дошел до сих пор. В этом случае я использую {match} в jQuery. Это применимо к изображениям или текстам. Надеюсь, это поможет

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...