Validator формы Java Spring, чтобы проверить, содержит ли входная строка специальные символы или нет - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь создать форму Java Spring, которая проверяет, содержит ли входная строка специальные символы или нет.Например, когда пользователь вводит строку, содержащую специальные символы, появляется сообщение о том, что входная строка содержит специальные символы.

Мой вопрос заключается в том, как реализовать функцию Java внутри валидатора для проверки наличия специальных символов ввходная строка?

Код валидатора

package com.mkyong.customer.validator;

import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.mkyong.customer.model.Customer;

public class CustomerValidator implements Validator{
	
	Pattern pattern = Pattern.compile("[a-zA-Z0-9]*");
	String str = "userName";
	Matcher matcher = pattern.matcher(str);
	

	@Override
	public boolean supports(Class clazz) {
		//just validate the Customer instances
		return Customer.class.isAssignableFrom(clazz);

	}

	@Override
	public void validate(Object target, Errors errors) {
		
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName",
			"required.userName", "Keyword is required.");
		
	}
	
	 if (!matcher.matches()) {
         System.out.println("string '"+str + "' contains special character");
    } else {
         System.out.println("string '"+str + "' doesn't contains special character");
    }
	
}

1 Ответ

0 голосов
/ 14 февраля 2019

Дайте этому шанс:

       String REGEX = "[^&%$#@!~]*";
       Pattern pattern = Pattern.compile(REGEX);

И все должно работать нормально.^ вне класса символов обозначает начало строки.

       String REGEX = "^[&%$##@!~]";
       String REGEX = "[^&%$#@!~]*";

^ внутри класса символов [] означает отрицание символов внутри класса символов.

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