Javascript 使用Java和NodeJS验证字符串

Javascript 使用Java和NodeJS验证字符串,javascript,java,node.js,Javascript,Java,Node.js,vo.getResultFun()和cod返回'G' Java验证 if ( genericValidator.isBlankOrNull(vo.getResultFun()) || !("G".equalsIgnoreCase(vo.getResultFun()) || "B".equalsIgnoreCase(vo.getResultFun()))) { throw new UCNaoCadastradaG

vo.getResultFun()
cod
返回
'G'

Java验证

if ( genericValidator.isBlankOrNull(vo.getResultFun()) || 
          !("G".equalsIgnoreCase(vo.getResultFun()) || "B".equalsIgnoreCase(vo.getResultFun()))) {
            throw new UCNaoCadastradaGerBenException();
        }
NodeJS

if (Validator.isNullUndefinedEmpty(cod) ||
            !(Validator.isEqual(cod, 'B', true) || Validator.isEqual(cod, 'G', true))) {
            callback(Translate.__('K1.CH1', lang), null);
isEqual

  static isEqual(str1: string, str2: string, ignoreCase: boolean = false): boolean {
    let ret = false;
    if (ignoreCase) {
      ret =
        (str1 === undefined && str2 === undefined) ||
        (str1 === null && str2 === null) ||
        (str1 != null && str2 != null && typeof str1 === 'string' && typeof str2 === 'string' && str1.toUpperCase() === str2.toUpperCase());
    } else {
      ret =
        (str1 === undefined && str2 === undefined) ||
        (str1 === null && str2 === null) ||
        (str1 != null && str2 != null && typeof str1 === 'string' && typeof str2 === 'string' && str1 === str2);
    }
    return ret;
  }

为什么NodeJS返回回调而Java不抛出异常?

这个js部分的结果是:

!(Validator.isEqual(cod, 'B', true) || Validator.isEqual(cod, 'G', true))
false
作为此java部分的结果:

!("G".equalsIgnoreCase(vo.getResultFun()) || "B".equalsIgnoreCase(vo.getResultFun()))
因此,有几种选择:

  • Validator.isNullUndefinedEmpty
    不起作用
  • cod
    并不严格等于“G”
  • 不调用回调函数

因为问题实际上在于JavaScript部分,所以我添加了JavaScript标记。但这些参数的声明看起来很奇怪。这实际上是TypeScript吗?是的,它是TypeScriptChanged Validator.isNullUndefinedEmpty到Validator.isNullUndefined。谢谢