如何使用 Parsley Validate 使用 jQuery Currency formater 验证输入字段? (也许是正则表达式?)

How to validate input field with jQuery Currency formater using Parsley Validate? (Maybe RegEx?)

我有一个输入字段,它使用 JavaScript 将数字 enteret 转换为丹麦货币(20000 将显示为 20.000,00 kr。).. 在这个输入中我需要验证(使用 Parsley验证)以下内容:

  1. 输入的只是数字
  2. 数字在 10000 到 200000 之间。

我试过使用 data-parsley-type="digits" data-parsley-length="[5,6]" 这会验证数字不低于 10000,但也会验证 999999, which offcause is not perfect 但如果我不能把限制放在 200000 上,那就没问题了。最大的问题是当我在输入框中写入时,Parsley 会验证输入,但是当我“走出”输入时JavaScript 将输入转换为货币格式被触发,现在输入字段有“.”和“kr”。所以 Parsley 验证返回输入错误。

如何让 Parsley 验证,即“10.000,00 kr”。但在“1k.000.00 kr.”上失败了? ..也许正则表达式? ..但是如何?

var currencyInput = document.querySelector('input[type="digits"]')
var currency = 'DKK' // https://www.currency-iso.org/dam/downloads/lists/list_one.xml

 // format inital value
onBlur({target:currencyInput})

// bind event listeners
currencyInput.addEventListener('focus', onFocus)
currencyInput.addEventListener('blur', onBlur)


function localStringToNumber( s ){
  return Number(String(s).replace(/[^0-9.-]+/g,""))
}

function onFocus(e){
  var value = e.target.value;
  e.target.value = value ? localStringToNumber(value) : ''
}

function onBlur(e){
  var value = e.target.value

  var options = {
      maximumFractionDigits : 2,
      currency              : currency,
      style                 : "currency",
      currencyDisplay       : "symbol"
  }
  
  e.target.value = value 
    ? localStringToNumber(value).toLocaleString(undefined, options)
    : ''
}



$(function () {
  $('#SendNewFixedEmployeeForm').parsley().on('field:validated', function() {
    var ok = $('.parsley-error').length === 0;
    $('.bs-callout-info').toggleClass('hidden', !ok);
    $('.bs-callout-warning').toggleClass('hidden', ok);
  })
  .on('form:submit', function() {
    return true;
  });
});
<link href="http://parsleyjs.org/src/parsley.css" rel="stylesheet"/>

<form id="SendForm" action="#" method="post" class="demo-form" data-parsley-validate="" data-parsley-excluded="input[type=button], input[type=submit], input[type=reset], input[type=hidden], [disabled], :hidden">
<input type='digits' class="maxLength form-control" width="400" value="0" name="CurrencyField" id="CurrencyField" aria-describedby="basic-addon2" data-parsley-type="digits" data-parsley-length="[5,6]" data-parsley-errors-container="#Sallary-errors" required/>

<button type="submit" form="SendForm">Submit</button>

</form>

<script src="http://parsleyjs.org/dist/parsley.min.js"></script>
<script src="https://cdpn.io/cp/internal/boomboom/pen.js?key=pen.js-4eb31870-42c1-91aa-5c3e-9c5b016d4ea4" crossorigin></script>

而不是 data-parsley-length,使用 data-parsley-mindata-parsley-max