-- android, java

Java :: Email Regex

Üzerinde çalıştığım bir Android projesinde EditText alanına girilen e-mail değerinin gerçekten de bir e-mail adresi mi olduğunun kontrol edilmesi gerekiyordu. Bunun için aşağıdaki kodu bulup kullandım.

boolean isEmailValid(String email) {
		String expression = "^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
		CharSequence inputStr = email;

		Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher(inputStr);
		return matcher.matches();
	}

Girilen tüm değerleri doğru test ediyor mu bilemem ama benim işimi görecek kadar iyi çalışıyor. Aşağıdaki kod bloğu ile test ettiğimde;

		ArrayList addresses = new ArrayList();
		addresses.add(" ");
		addresses.add("test");
		addresses.add("test.com");
		addresses.add("test@com");
		addresses.add("test@test.com");
		addresses.add("test@test.com.");
		addresses.add("test@test.com.tr");
		addresses.add("test.test@test.com.tr");
		addresses.add("test@türkçe.karakter.tr");

		for (int i = 0; i < addresses.size(); i++) {
			System.out.println(addresses.get(i) + " :: "
					+ isEmailValid(addresses.get(i)));
		}

şu aşağıdaki çıktıyı verdi:
:: false
test :: false
test.com :: false
test@com :: false
test@test.com :: true
test@test.com. :: false
test@test.com.tr :: true
test.test@test.com.tr :: true
test@türkçe.karakter.tr :: false

Yeniden anlamış olduk ki regular expressions hayat kurtarır :)
Kaynak: zparacha.com

Yorum yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

  1. Teşekkür ediyorum öncelikle.

    Düzenli ifadeler gerçekten büyük kolaylık sağlıyor. Ama ne yazık ki tam olarak kaynak yok. regexone.com vardı ama orada hiçbir ipucu vermiyor. Kendinizi test ediyorsunuz sadece.

    Bir gün bu REGEX’i internete bakmadan yazmak isterdim. Aynı şekilde okuyabilmek de :)