JSP303 data checksum regular expression

JSP303 data validation

(Automatic configuration) You can set debug=true in the configuration file and check what is configured in the processing column, which ones are effective and which ones are not.

@Conditional derived annotation (Spring annotation version’s native @Conditional function)

Function: The conditions specified by @Conditional must be met before components are added to the container, and all contents in the configuration configuration take effect;

So many automatic configuration classes must take effect under certain conditions; that is to say, we have loaded so many configuration classes, but not all of them have taken effect.

1. @validated can be used to verify data in Springboot. If the data is abnormal, an exception will be thrown uniformly to facilitate unified processing by the exception center. Let's write a note here so that our name can only support Email format;

@Component //Register bean 
@ConfigurationProperties(prefix = "person") 
@Validated //Data verification 
public class Person { 
​@Email
    (message="Email format error") //name must be in email format 
    private String name; 
}

Running result: default message [not a valid email address];

Using data verification can ensure the correctness of the data;

2. Common parameters

@NotNull(message="The name cannot be empty") 
private String userName; 
@Max(value=120,message="The maximum age cannot be checked is 120") 
private int age; 
@Email(message="Email format error") 
private String email; 
Null
check 
@Null Verify whether the object is null 
@NotNull Verify whether the object is not null, cannot check a string with a length of 0 
@NotBlank Check whether the constraint string is Null and whether the length of the trimmed string is greater than 0, only For strings, leading and trailing spaces will be removed. 
@NotEmpty Check whether the constraint element is NULL or EMPTY. 
    
Booelan Check 
@AssertTrue Verify whether the Boolean object is true   
@AssertFalse Verify whether the Boolean object is false   
    
Length check 
@Size(min=, max= ) Verify whether the length of the object (Array, Collection, Map, String) is within the given range   
@Length(min=, max=) string is between min and max included. 
​Date
check
@Past Verify whether the Date and Calendar objects are before the current time   
@Future Verify whether the Date and Calendar objects are after the current time   
@Pattern Verify whether the String object conforms to the rules of the regular expression 
​...
etc 
. In addition, We can also customize some data verification rules

3. Regular expressions

Regular expressions start with =="^"== and end with =="$"==

(1).Expression of check digit

1 Number: ^[0-9]*$

2 n-digit numbers: ^\d{n}$

3 Numbers with at least n digits: ^\d{n,}$

4 mn digits: ^\d{m,n}$

5 Numbers starting with zero and non-zero: ^(0|[1-9][0-9]*)$

6 Numbers starting with non-zero and with up to two decimal places: ^([1-9][0-9]*)+(.[0-9]{1,2})?$

7 Positive or negative numbers with 1-2 decimal places: ^(\-)?\d+(\.\d{1,2})?$

8 Positive numbers, negative numbers, and decimals: ^(\-|\+)?\d+(\.\d+)?$

9 Positive real numbers with two decimal places: ^[0-9]+(.[0-9]{2})?$

10 Positive real numbers with 1~3 decimal places: ^[0-9]+(.[0-9]{1,3})?$

11 Non-zero positive integer: ^[1-9]\d*$ or ^([1-9][0-9]*){1,3}$ or ^\+?[1-9][0 -9]*$

12 Non-zero negative integers: ^\-[1-9][]0-9"*$ or ^-[1-9]\d*$

13 non-negative integers: ^\d+$ or ^[1-9]\d*|0$

14 Non-positive integer: ^-[1-9]\d*|0$ or ^((-\d+)|(0+))$

15 Non-negative floating point number: ^\d+(\.\d+)?$ or ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0? \.0+|0$

16 Non-positive floating point number: ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ or ^(-([1-9]\d*\.\ d*|0\.\d*[1-9]\d*))|0?\.0+|0$

(2).Expression of check characters

1 Chinese characters: ^[\u4e00-\u9fa5]{0,}$

2 English and numbers: ^[A-Za-z0-9]+$ or ^[A-Za-z0-9]{4,40}$

3 All characters with length 3-20: ^.{3,20}$

4 A string consisting of 26 English letters: ^[A-Za-z]+$

5 A string consisting of 26 uppercase English letters: ^[AZ]+$

6 A string consisting of 26 lowercase English letters: ^[az]+$

7 A string consisting of numbers and 26 English letters: ^[A-Za-z0-9]+$

8 A string consisting of numbers, 26 English letters or underscores: ^\w+$ or ^\w{3,20}$

9 Chinese, English, numbers including underscores: ^[\u4E00-\u9FA5A-Za-z0-9_]+$

10 Chinese, English, numbers but not including underscores and other symbols: ^[\u4E00-\u9FA5A-Za-z0-9]+$ or ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11 You can enter characters containing ^%&',;=?$\" and other characters: [^%&',;=?$\x22]+

12 It is forbidden to enter characters containing ~: [^~\x22]+
(3).Special requirements expression

1 Email location: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

2 优通:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{ 0.62})+/.?

3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

4 Mobile phone number: ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3 |5|6|7|8|9])\d{8}$

5 phone numbers ("XXX-XXXXXXX", "XXXX-XXXXXXXX", "XXX-XXXXXXX", "XXX-XXXXXXXX", "XXXXXXX" and "XXXXXXXX"): ^(\(\d{3,4}-)| \d{3.4}-)?\d{7,8}$

6 Domestic telephone numbers (0511-4405222, 021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

7 ID number (15 digits, 18 digits): ^\d{15}|\d{18}$

8 Short ID number (digits, letters ending with x): ^([0-9]){7,18}(x|X)?$ or ^\d{8,18}|[0-9x]{8 ,18}|[0-9X]{8,18}?$

9 Is the account legal (starts with a letter, allows 5-16 bytes, and allows alphanumeric underscores): ^[a-zA-Z][a-zA-Z0-9_]{4,15}$

10 Password (starting with a letter, length between 6 and 18, can only contain letters, numbers and underscores): ^[a-zA-Z]\w{5,17}$

11 Strong password (must contain a combination of uppercase and lowercase letters and numbers, cannot use special characters, and the length is between 8-10): ^(?=.*\d)(?=.*[az])(?=. *[AZ]).{8,10}$

12 Date format: ^\d{4}-\d{1,2}-\d{1,2}

13 12 months of a year (01~09 and 1~12): ^(0?[1-9]|1[0-2])$

14 31 days of a month (01~09 and 1~31): ^((0?[1-9])|((1|2)[0-9])|30|31)$

15 Money input format:

16 1. There are four acceptable representations of money: "10000.00" and "10,000.00", and "10000" and "10,000" without "cents": ^[1-9][0-9]*$

17 2. This means any number that does not start with 0, but it also means that a character "0" is not passed, so we use the following form: ^(0|[1-9][0-9]* )$

18 3. A 0 or a number that does not start with 0. We can also allow a negative sign at the beginning: ^(0|-?[1-9][0-9]*)$

19 4. This means a 0 or a number that may be negative at the beginning that is not 0. Let the user start with 0. Remove the negative sign, because money can never be negative. What we want to add next is Specify possible decimal parts: ^[0-9]+(.[0-9]+)?$

20 5. It must be noted that there should be at least 1 digit after the decimal point, so "10." is not passed, but "10" and "10.2" are passed: ^[0-9]+(.[0 -9]{2})?$

21 6. In this way, we stipulate that there must be two decimal places after the decimal point. If you think it is too harsh, you can do this: ^[0-9]+(.[0-9]{1,2})?$

22 7. This allows the user to write only one decimal place. Next we should consider the comma in the number, we can do this: ^[0-9]{1,3}(,[0-9]{3})* (.[0-9]{1,2})?$

23 8.1 to 3 numbers, followed by any number of commas + 3 numbers, the commas become optional instead of required: ^([0-9]+|[0-9]{1,3}(,[0- 9]{3})*)(.[0-9]{1,2})?$

24 Remarks: This is the final result. Don’t forget that "+" can be replaced by "*" if you think empty strings are also acceptable (strange, why?) Finally, don’t forget to remove the anti-reverse when using the function Slash, common errors are here

25 xml text: ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$

Regular expression for 26 Chinese characters: [\u4e00-\u9fa5]

27 Double-byte characters: [^\x00-\xff] (including Chinese characters, can be used to calculate the length of the string (a double-byte character counts as 2, ASCII characters count as 1))

28 Regular expression for blank lines: \n\s*\r (can be used to delete blank lines)

29 Regular expression for HTML tags: <(\S*?)[^>]*>.*?</\1>|<.*? /> (The version circulating on the Internet is too bad, and the above one can only partially , still unable to deal with complex nested tags)

30 Regular expression for blank characters at the beginning and end: ^\s*|\s*$ or (^\s*)|(\s*$) (can be used to delete blank characters at the beginning and end of the line (including spaces and tabs) characters, form feeds, etc.), very useful expressions)

31 Tencent QQ number: [1-9][0-9]{4,} (Tencent QQ number starts from 10000)

32 China Postal Code: [1-9]\d{5}(?!\d) (China Postal Code is 6 digits)

33 IP address: \d+\.\d+\.\d+\.\d+ (useful when extracting IP address)

34 IP address: ((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?: 25[0-5]|2[0-4]\\d|[01]?\\d?\\d))

Guess you like

Origin blog.csdn.net/weixin_65528063/article/details/124576509