js
import java.util.*;
import java.lang.*;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
class Rextester
{
public static void main(String args[]) throws Exception
{
String FUNCOES_BASE = montarFuncoesBase ();
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine scriptEngine = factory.getEngineByName("JavaScript");
scriptEngine.put("valor", "123456");
scriptEngine.eval(FUNCOES_BASE);
Invocable invocable = (Invocable) scriptEngine;
System.out.print((Boolean)invocable.invokeFunction("isNotEmpty"));
}
private static String montarFuncoesBase () {
StringBuilder funcoes = new StringBuilder();
funcoes.append(montarFuncaoIsNotEmpty());
funcoes.append(montarFuncaoIsDataValida());
return funcoes.toString();
}
private static String montarFuncaoIsNumeric () {
return "function isNumerico () { var regex = new RegExp(/^\\d+$/); return regex.test(valor); }";
}
private static String montarFuncaoIsNotEmpty () {
return "function isNotEmpty () { return valor.trim().length > 0 }";
}
private static String montarFuncaoIsNumericoSemZeroEsquerda () {
return "function isNumericoSemZeroEsquerda () { var regex = new RegExp(/^\\d+$/); var isNumerico = regex.test(valor); regex = new RegExp(/^0\\d*$/); var iniciaComZero = regex.test(valor); return (isNumerico && !iniciaComZero); }";
}
private static String montarFuncaoIsTipoPessoaValido () {
return "function isTipoPessoaValido () { return valor == 3 || valor == 6; }";
}
private static String montarFuncaoIsAgenciaValida () {
return "function isAgenciaValida () { var regex = new RegExp(/^\\d{1,5}$/); return regex.test(valor); }";
}
private static String montarFuncaoIsContaValida () {
return "function isContaValida() { var regex = new RegExp(/^\\d{1,13}$/); return regex.test(valor); }";
}
private static String montarFuncaoIsDataValida () {
StringBuilder function = new StringBuilder()
.append("function isDataValida () {")
.append(" var regexDate = /^(\\d{4})(\\d{2})(\\d{2})$/;")
.append(" var regexDateTime = /^(\\d{4})(\\d{2})(\\d{2})\\s*(\\d{2})(\\d{2})(\\d{2})$/;")
.append(" if (new RegExp(regexDate).test(valor)) {")
.append(" let parts = regexDate.exec(valor);")
.append(" let date = new Date(parts[1], (+parts[2])-1, parts[3]);")
.append(" if (date.getDate() == parts[3] && date.getMonth() == (parts[2]-1) && date.getFullYear() == parts[1]) {")
.append(" return true; ")
.append(" }")
.append(" }")
.append(" if (new RegExp(regexDateTime).test(valor)) {")
.append(" let parts = regexDateTime.exec(valor);")
.append(" let date = new Date(parts[1], (+parts[2])-1, parts[3], parts[4], parts[5], parts[6]);")
.append(" if (date.getDate() == parts[3] && date.getMonth() == (parts[2]-1) && date.getFullYear() == parts[1] && date.getHours() == parts[4] && date.getMinutes() == parts[5] && date.getSeconds() == parts[6]) {")
.append(" return true; ")
.append(" }")
.append(" }")
.append(" return false;")
.append("}");
return function.toString();
}
}
|
run
| edit
| history
| help
|
0
|
|
|