复制/粘贴时,我希望同时捕获前导空格和尾部空格



目前我有一个帮助解决问题的需求。我们的用户必须添加一个公司ID,该ID可能同时包含前导空格和尾随空格。目前,他们必须在10个框中进行制表才能输入公司ID。我想找一个位置,他们可以从电子表格、应用程序等中复制,然后自动将该值解析到10个框。公司ID可以是数字、空格、字母和带有前导、内部或尾部空格的特殊字符,但长度必须为10个字符。

一段时间以来,这一直是我的眼中钉,我希望社区能帮助我

这是迄今为止的剧本。

var aView = Screen.CurrentView;
var str = aView.Fields("CompanyIDPaste").Value;
var strLen = str.length;
if (strLen < 10){
var str2 = "1111111111";
var str3 = str2.concat(str);
var str = str3.substring(str3.length - 10, str3.length);
}
var arr1 = str.slice(0, 1);
var arr2 = str.slice(1, 2);
var arr3 = str.slice(2, 3);
var arr4 = str.slice(3, 4);
var arr5 = str.slice(4, 5);
var arr6 = str.slice(5, 6);
var arr7 = str.slice(6, 7);
var arr8 = str.slice(7, 8);
var arr9 = str.slice(8, 9);
var arr10 = str.slice(9, 10);
if (strLen < 10){
aView.Fields("a1").Value = '';
} else {
aView.Fields("a1").Value = arr1;
}
if (strLen < 9){
aView.Fields("a2").Value = '';
} else {
aView.Fields("a2").Value = arr2;
}
if (strLen < 8){
aView.Fields("a3").Value = '';
} else {
aView.Fields("a3").Value = arr3;
}
if (strLen < 7){
aView.Fields("a4").Value = '';
} else {
aView.Fields("a4").Value = arr4;
}
if (strLen < 6){
aView.Fields("a5").Value = '';
} else {
aView.Fields("a5").Value = arr5;
}
if (strLen < 5){
aView.Fields("a6").Value = '';
} else {
aView.Fields("a6").Value = arr6;
}
if (strLen < 4){
aView.Fields("a7").Value = '';
} else {
aView.Fields("a7").Value = arr7;
}
if (strLen < 3){
aView.Fields("a8").Value = '';
} else {
aView.Fields("a8").Value = arr8;
}
if (strLen < 2){
aView.Fields("a9").Value = '';
} else {
aView.Fields("a9").Value = arr9;
}
if (strLen < 1){
aView.Fields("a10").Value = '';
} else {
aView.Fields("a10").Value = arr10;
}

这有助于保持前导空格,但尾部空格被截断了。例如SO,__ 345_abc_将被截断为_ 345_abc作为值,这是不正确的。当它被复制/粘贴到字段中时,我需要它准确地解析出来。

这把我逼疯了。非常感谢你的帮助。

这是一种糟糕的破解方法,但如果您在页面上使用autotab(jquery(并将焦点设置为第一个框,则进行粘贴的用户将获得分布在各个字段中的10个字符,只要每个字符的输入都限制在1个字符以内。任何超过10个字符的东西都会被丢弃在以太中。

如果他们在自动标签中键入自己的ID,只要字段大小限制为1个字符,就会从一个框带到另一个框。

最新更新