为了账号安全,请及时绑定邮箱和手机立即绑定

在 Asp.Net C# 中使用 javascript 拆分多行文本框值

在 Asp.Net C# 中使用 javascript 拆分多行文本框值

慕森卡 2023-05-19 14:27:21
Asp.Net C# 多行文本框(textbox1)值在地址的 35 个字符后拆分并添加到文本框(textbox2 - 单行)再次拆分接下来的 35 个字符并添加到文本框(textbox3 - 单行)再次拆分接下来的 35 个字符并添加到文本框(textbox4 - Singleline) 再次拆分接下来的 35 个字符并添加到文本框(textbox5 - Singleline)。 注意:在 35 个字符后拆分值时,请确保单词是否不完整,然后在下一行添加该单词,例如(...31 地址 - 这里地址的添加位置是 35 个字符,因此它会被打滑并添加到新的文本框,但我希望新文本框中的单词地址和它们的地址应该算作 35 个字符,依此类推。)我试过这个但没用..function CheckReturns() {            var txt = document.getElementById("TextBox1");            var splitResults = txt.value.split("\n");            if (splitResults[splitResults.length - 1].length < 35) {                if (splitResults[3].length > 0) {                    document.getElementById('address4').value = splitResults[3];                }                return true;            }            else {                document.getElementById('address1').value = splitResults[0];                document.getElementById('address2').value = splitResults[1];                document.getElementById('address3').value = splitResults[2];                 txt.value = txt.value + "\n";            }        }<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" MaxLength="140" Rows="10" Columns="60"                onblur="return CheckReturns();" placeholder="Enter Address here.."></asp:TextBox>            <br />            Address1:<asp:TextBox ID="address1" runat="server" Width="220px" ></asp:TextBox><br />            <br />            Address2:<asp:TextBox ID="address2" runat="server" Width="220px" ></asp:TextBox><br />            <br />            Address3:<asp:TextBox ID="address3" runat="server" Width="220px" ></asp:TextBox><br />            <br />            Address4:<asp:TextBox ID="address4" runat="server" Width="220px" ></asp:TextBox>
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

这是一个 JS,它实现了我在第一条评论中讨论的逻辑:



let longAddr = "this is a really long address with lots of words longer than 35 characters all over the place and i dont know where it is going to stop it just keeps going so it's like the longest address in the world which is a little bit crazy but there you go";


let addr = ["","","","",""];


for(let i = 0; i < 5 && longAddr.length > 0; i++){


    if(longAddr.length < 35 || i == 4)

    {

        addr[i] = longAddr;

        break;

    }

    

    let cut = 35;

    while(longAddr[cut] !== " " && cut > 0)

        cut--;

    if(cut == 0) //word longer than 35 chars here

      cut = 35;

    

    addr[i] = longAddr.slice(0, cut);

    longAddr = longAddr.slice(cut + 1);

}


console.log(addr);

它会生成一个包含 5 个元素的数组,并将字符串分割成这些元素。现在您所要做的就是将值放入文本框中


查看完整回答
反对 回复 2023-05-19
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信