当前位置: 首页 > 知识库问答 >
问题:

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

易雅畅
2023-03-14

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

  1. 输入的只有数字。
  2. 数字介于10000和200000之间。

我尝试使用data-parsley-type=“digits”data-parsley-length=“[5,6]”,该offcause验证该数字是否不低于10000,但也将验证9999999,该offcause不是完美的,但如果我不能将限制设置为200000则可以。最大的问题是,当我在输入框中写入时,Passley会验证输入,但当我“走出”输入时,将输入转换为货币格式的JavaScript会被触发,现在输入字段有“。和“KR”因此passley validate返回输入错误。

我如何使欧芹验证即“10000,00kr。”但在“1K.000.00KR”上失败了?..也许正则表达式?...但怎么做?

null

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>

null

共有1个答案

厉成仁
2023-03-14

使用data-passley-lengthdata-passley-min代替data-passley-max

 类似资料:
  • 我不擅长正则表达式。我需要验证密码是否正确。 条件: 您的密码长度可以是8-32个字符,并且必须包括至少两个以下字符: 至少一个字母(大写或小写) 至少一个数字 至少一个特殊字符 正则表达式中的正则表达式允许至少一个特殊字符,一个大写字母,一个小写字母(按任何顺序)需要所有三个,并且对长度没有上限,因此看起来我需要修改Tim Pietzcker的解决方案,这是 <代码>^(? =.{ 8,})(?

  • 问题内容: 我想在PHP中测试正则表达式的有效性,最好在使用前进行测试。这样做的唯一方法是实际尝试a 并查看是否返回吗? 有没有更简单/正确的方法来测试有效的正则表达式? 问题答案: 正如用户 pozs 所说,还应 考虑在测试环境中 放在 preg_match() () 前面, 以防止发出警告或通知。 要验证RegExp只需对其运行 (无需知道您要预先测试的数据) 。如果返回显式false(),则

  • 问题内容: 我在将输入字符串与Regex匹配时遇到问题。我想验证输入数字在0-255之间,并且长度最多为3个字符。代码工作正常,但是当我输入000000时,如果显示任意长度,则显示true而不是false。 这是我的代码:- 问题答案: 您可以使用此正则表达式: 正则演示

  • 本文向大家介绍请用正则表达式验证数字相关面试题,主要包含被问及请用正则表达式验证数字时的应答技巧和注意事项,需要的朋友参考一下 /[0一9]*$/

  • 本文向大家介绍iOS中使用正则表达式NSRegularExpression 来验证textfiled输入的内容,包括了iOS中使用正则表达式NSRegularExpression 来验证textfiled输入的内容的使用技巧和注意事项,需要的朋友参考一下 何谓正则表达式 正则表达式(regular expression),在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个

  • 我需要检查密码是否至少包含: 一个号码 一个小写字符 一个大写字符 一个特殊符号(.,@etc) 我在C#中有以下内容: 但这并不有效: 我错过了什么? 更新 我正在将其与系统.组件模型.数据注释一起使用来验证模型属性: