我有一个数据收集表格,一个文本输入字段用于跟踪数字。我使用条形码扫描仪扫描运输标签,这是捕获跟踪号的简便方法。然后,我将数字粘贴到该字段中。但是,FedEx的一种特殊的运输标签将表格号添加到跟踪号的末尾。
是否有一种方法可以使用JavaScript或JQuery在粘贴后立即检查输入,如果输入为'0663',则删除最后四个字符?有人可以提供样品吗?
答案 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)
以下演示使用:
<form>
,<input>
和<output>
标签。oninput
事件以调用回调函数:lastFour()
。当注册的input
标签获得用户输入的任何数据时,就会发生<input>
事件。substring()
和slice()
来操纵字符串值
// 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>