2011-08-19 44 views
5

Có ai biết về một plugin jQuery có thể kiểm tra xem văn bản có được mã hóa base64 không? Tôi muốn có thể giải mã chuỗi base64 nhưng chỉ khi chuỗi được mã hóa để bắt đầu. Tôi thấy một số kịch bản ra có mà có thể mã hóa và giải mã nhưng tôi thực sự là một trong đó có thể kiểm tra xem chuỗi được mã hóa.Phát hiện mã hóa base64

Điều đó có tồn tại không?

+0

liên quan Q: http://stackoverflow.com/questions/3355407/validate-string-is-base64-format-using-regex # 3355534 – Incognito

Trả lời

10

Có thực sự là một plugin jQuery không? Chỉ cần sử dụng đối sánh regex JavaScript đơn giản:

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. 
} 

Mẫu regex được lấy từ câu hỏi này: RegEx to parse or validate Base64 data.

+0

Không. Tôi có thể tự gia hạn. Cảm ơn bạn. – Nick

+0

Không thành công đối với một số văn bản, ví dụ: "Xám" là ký tự được mã hóa base64. – user2249160

+0

Đó là lý do tại sao câu trả lời cho biết "có khả năng" thay vì "chắc chắn". – BalusC

3

Câu trả lời ở trên không được tính cho phần đệm bằng dấu (= hoặc ==) ở cuối chuỗi cho tôi. Tôi đã cập nhật truy vấn và các công việc sau đây cho tôi.

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

Tôi biết điều này có thể muộn để trả lời nhưng đây là những gì tôi đã đưa ra cho đến nay. Trong trường hợp này, tôi sử dụng {match} trong jQuery. Điều này có thể áp dụng cho hình ảnh hoặc văn bản. Hy vọng điều này sẽ giúp

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>'); 

Cố gắng tìm kiếm này lên đây: https://jsfiddle.net/lajatomary/a8tugwe3/4/

Các vấn đề liên quan