Chuỗi xác thực file ảnh
([^\s
]+(\
.(?i
)(jpg
|png
|gif
|bmp
))$
)
Description
(#Start of the group #
1
[^\s
]+# must contains one or more anything
(except white space
)
(# start of the group #
2
\
.# follow by a dot
"."
(?i
)# ignore the
casesensive checking
forthe following characters
(# start of the group #
3
jpg # contains characters
"jpg"
|#
..or
png # contains characters
"png"
|#
..or
gif # contains characters
"gif"
|#
..or
bmp # contains characters
"bmp"
)# end of the group #
3
)# end of the group #
2
$ # end of the string
) #end of the group #
1
Code:
package com.codewr.javacore.regular.expression;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* @author codewr
*/
public class ImageValidator {
private static final String IMAGE_PATTERN
= "([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)";
public static void main(String[] args) {
ImageValidator imageValidator = new ImageValidator();
//check image validate
boolean isValid = imageValidator.validate("a.pnsg");
System.out.println("image valid is " + isValid);
}
/**
* Validate image with regular expression
*
* @param image image for validation
* @return true valid image, false image email
*/
public boolean validate(final String image) {
Pattern pattern = Pattern.compile(IMAGE_PATTERN);
Matcher matcher = pattern.matcher(image);
return matcher.matches();
}
}
Code UnitTest:
File ảnh hợp lệ
1. “a.jpg”, “a.gif”,”a.png”, “a.bmp”,
2. “..jpg”, “..gif”,”..png”, “..bmp”,
3. “a.JPG”, “a.GIF”,”a.PNG”, “a.BMP”,
4. “a.JpG”, “a.GiF”,”a.PnG”, “a.BmP”,
5. “jpg.jpg”, “gif.gif”,”png.png”, “bmp.bmp”
File ảnh không hợp lệ:
1. “.jpg”, “.gif”,”.png”,”.bmp” – image file name is required
2. ” .jpg”, ” .gif”,” .png”,” .bmp” – White space is not allow in first character
3. “a.txt”, “a.exe”,”a.”,”a.mp3″ – Only image file extension is allow
3. “jpg”, “gif”,”png”,”bmp” – image file extension is required
import com.codewr.javacore.regular.expression.ImageValidator;
import org.testng.Assert;
import org.testng.annotations.*;
/**
*
* @author codewr
*/
public class ImageValidatorTest {
private ImageValidator imageValidator;
@BeforeClass
public void initData() {
imageValidator = new ImageValidator();
}
@DataProvider
public Object[][] ValidImageProvider() {
return new Object[][]{
{new String[]{
"a.jpg", "a.gif", "a.png", "a.bmp",
"..jpg", "..gif", "..png", "..bmp",
"a.JPG", "a.GIF", "a.PNG", "a.BMP",
"a.JpG", "a.GiF", "a.PnG", "a.BmP",
"jpg.jpg", "gif.gif", "png.png", "bmp.bmp"
}
}
};
}
@DataProvider
public Object[][] InvalidImageProvider() {
return new Object[][]{
{new String[]{
".jpg", ".gif", ".png", ".bmp",
" .jpg", " .gif", " .png", " .bmp",
"a.txt", "a.exe", "a.", "a.mp3",
"jpg", "gif", "png", "bmp"
}
}
};
}
@Test(dataProvider = "ValidImageProvider")
public void ValidImageTest(String[] Image) {
for (String temp : Image) {
boolean valid = imageValidator.validate(temp);
System.out.println("Image is valid : " + temp + " , " + valid);
Assert.assertEquals(true, valid);
}
}
@Test(dataProvider = "InvalidImageProvider",
dependsOnMethods = "ValidImageTest")
public void InValidImageTest(String[] Image) {
for (String temp : Image) {
boolean valid = imageValidator.validate(temp);
System.out.println("Image is valid : " + temp + " , " + valid);
Assert.assertEquals(false, valid);
}
}
}
Output:
Running ImageValidatorTest
Image is valid : a.jpg , true
Image is valid : a.gif , true
Image is valid : a.png , true
Image is valid : a.bmp , true
Image is valid : ..jpg , true
Image is valid : ..gif , true
Image is valid : ..png , true
Image is valid : ..bmp , true
Image is valid : a.JPG , true
Image is valid : a.GIF , true
Image is valid : a.PNG , true
Image is valid : a.BMP , true
Image is valid : a.JpG , true
Image is valid : a.GiF , true
Image is valid : a.PnG , true
Image is valid : a.BmP , true
Image is valid : jpg.jpg , true
Image is valid : gif.gif , true
Image is valid : png.png , true
Image is valid : bmp.bmp , true
Image is valid : .jpg , false
Image is valid : .gif , false
Image is valid : .png , false
Image is valid : .bmp , false
Image is valid : .jpg , false
Image is valid : .gif , false
Image is valid : .png , false
Image is valid : .bmp , false
Image is valid : a.txt , false
Image is valid : a.exe , false
Image is valid : a. , false
Image is valid : a.mp3 , false
Image is valid : jpg , false
Image is valid : gif , false
Image is valid : png , false
Image is valid : bmp , false
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.444 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
Chú ý: file pom.xml add maven
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>