从表单文本输入字段中删除最后四个字符

时间:2018-10-17 00:42:08

标签: javascript jquery regex replace trim

我有一个数据收集表格,一个文本输入字段用于跟踪数字。我使用条形码扫描仪扫描运输标签,这是捕获跟踪号的简便方法。然后,我将数字粘贴到该字段中。但是,FedEx的一种特殊的运输标签将表格号添加到跟踪号的末尾。

是否有一种方法可以使用JavaScript或JQuery在粘贴后立即检查输入,如果输入为'0663',则删除最后四个字符?有人可以提供样品吗?

3 个答案:

答案 0 :(得分:1)

这是一个可行的解决方案。只需运行下面的代码段即可。

在Chrome中测试。可能需要在其他浏览器中取消注释某些注释的代码。

ProfileResto
re.split('\d', 'SPL5IT THE WORDS')
Out[20]: ['SPL', 'IT THE WORDS']

re.split('(\d)', 'SPL5IT THE WORDS')
Out[21]: ['SPL', '5', 'IT THE WORDS']

答案 1 :(得分:0)

这里:

let code = '123412341234123412340663';
console.log(code.substring(0,code.length-4));

答案 2 :(得分:0)

以下演示使用:

// Reference the <form>
var shp = document.forms[0].elements;
// Reference the <input>
var trk = shp.trackingNumber;

// Assign event handler for input event
trk.oninput = lastFour;

// Callback function
function lastFour(e) {
  /*
  Get the value of the tag that the input event 
  occurred on (i.e. <input>)
  */
  var num = e.target.value;

  /*
  if the last 4 chars equals '0663'... [?]
  ...extract the chars from num at start(0) 
  to the fourth to the last(-4 excluded)...[:]
  ...otherwise leave num alone
  */
  var mod = (num.substring(num.length - 4) === '0663') ? num.slice(0, -4) : num;

  // Set the value of <output> to the new value mod
  shp.labelScan.value = mod;
}
<form id='shipping'>
  <label for='trackingNumber'>Tracking Number:
  <input id='trackingNumber' type='number' min='100000000000' max='9999999999999999'> 12 to 16 digits</label><br>
  <output id='labelScan'></output>
</form>