[Original] Delete the blank line in multi-line text box

xiaoxiao2021-03-06  18

Delete blank lines in multi-line text boxes

In some research or voting procedures, there are two options to set the topic, and there are two most common ways:

1. Each time you add a selection branch, if the title has n option, add N times;

2. Fill all the options into a text box, divide each option with a special separator (eg, "," $ ", and then processes the resulting content.

If there is only a small number of topics in the investigation or voting program, it is still more complicated in the topic. Therefore, there are many cases in many cases.

In the second approach, it is more convenient and intuitive, and it is more useful to fill in all the options in the multi-line text box, each option occupies a row, and then generates a selection item at once according to the content filled in. But this method is accompanied by a problem: how to eliminate the blank line generated by accidental error input.

The possible blank line mainly has a purely blank row generated by a carriageway and two blank lines generated by one or more spaces (it is also possible to mix by tabs or tabs and blank lines, but this Something is very similar, the method is also similar). There are three places where the blank line is generated: the segment, the paragraph and the end. And each blank may be composed of one or more lines.

The general processing method is to divide each option, using array storage, traversing an array, if an item of an array is empty, then delete the item, then generate a selection item. I have encountered this situation, I think it is more troublesome with array processing, compared with the regular expression, it is relatively simple.

The function is as follows:

Imports System.Text.RegularExpressions

Function DealwithBlank (Byval Str As String) AS String

'Treatment front and back and middle space blank line

Str = regex.replace (STR, "^ * / r / n", "", regexoptions.multiline)

Str = Regex.Replace (STR, "/ R / N * $", VBCRLF, RegexOptions.Multiline

'Treating a carriage return to the car

Str = regex.replace (STR, "(/ R / N) {1,}", VBCRLF)

Str = regex.replace (STR, "/ r / n $", "")

'Returns a string that meets the text box format

Return Str

END FUNCTION

example:

INDEX.ASPX

<% @ Page language = "vb" autoeventwireup = "false" codebehind = "index.aspx.vb" inherits = "test.webform1"%>

3C

// DTD HTML 4.0 Transitional // En ">

Webform1 </ Title></p> <p><meta content = "Microsoft Visual Studio .NET 7.1" Name = "Generator"></p> <p><meta content = "Visual Basic .NET 7.1" Name = "Code_Language"></p> <p><meta content = "javaScript" name = "vs_defaultclientscript"> <meta content = "http://schemas.microsoft.com/intellisense/ie5" name = "vs_targetschema"></p> <p></ HEAD></p> <p><body ms_positioning = "gridLayout"></p> <p><form id = "form1" method = "post" runat = "server"></p> <p><asp: textbox id = "textbox1" style = "z-index: 101; left: 8px; position: absolute; top: 8px" runat = "server" columns = "60" rows = "8" textmode = "multiline" > </ asp: textbox></p> <p><asp: label id = "Label1" style = "z-index: 105; Left: 8px; position: absolute; top: 304px" Runat = "Server"> label </ ask: label></p> <p><ask: checkboxlist id = "checkboxlist1" style = "z-index: 104; Left: 544px; position: absolute; top: 16px"</p> <p>Runat = "Server"> </ asp: checkboxlist></p> <p><asp: button id = "button1" style = "z-index: 103; Left: 192px; position: absolute; top: 160px" runat = "server" text = "Clear blank line"> </ asp: button></p> <p><asp: textbox id = "textbox2" style = "z-index: 102; left: 8px; position: absolute; top: 200px" runat = "server" columns = "60" rows = "5" textmode = "multiline" > </ asp: textbox></p> <p></ form></p> <p></ body></p> <p></ Html></p> <p>INDEX.ASPX.VB</p> <p>Imports system</p> <p>Imports system.Web</p> <p>Imports System.Web.ui</p> <p>Imports System.Web.ui.WebControls</p> <p>Imports System.Text</p> <p>Imports System.Text.RegularExpressions</p> <p>Imports Microsoft</p> <p>Imports Microsoft.visualBasic</p> <p>Public Class Webform1</p> <p>Inherits System.Web.ui.page</p> <p>#REGION "The code" Generated by the Web Form Design "'This call is required for the web form designer.</p> <p><System.diagnostics.debuggerstepthrough ()> private subinitializecomponent ()</p> <p>End Sub</p> <p>Protected withevents textbox1 as system.Web.ui.WebControls.textbox</p> <p>Protected withevents textbox2 as system.Web.ui.WebControls.TextBox</p> <p>Protected withevents button1 as system.web.ui.webcontrols.button</p> <p>Protected withevents checkboxlist1 as system.Web.ui.WebControls.checkboxlist</p> <p>'Note: The following placeholders declare are required by the web form designer.</p> <p>'Don't delete or move it.</p> <p>Private DesignerPlaceHolderDeclaration as System.Object</p> <p>Private sub page_init (byval sender as system.object, byval e as system.eventargs) Handles mybase.init</p> <p>'Codegen: This method call is necessary for the web form designer</p> <p>'Don't modify it using the code editor.</p> <p>InitializeComponent ()</p> <p>End Sub</p> <p>#End region</p> <p>Private Sub Page_Load (Byvale AS System.Object, Byval E AS System.Eventargs) Handles MyBase.Load</p> <p>'Place the user code of the initialization page here</p> <p>End Sub</p> <p>'********************************************************** *******************************</p> <p>'</p> <p>'Replace the Enter Punch and Space</p> <p>'</p> <p>'********************************************************** *******************************</p> <p>Private sub button1_click (byvale as system.object, byval e as system.eventargs) Handles Button1.click</p> <p>DIM STRTB1, STRTB2 AS STRING</p> <p>Strtb1 = TextBox1.text</p> <p>Strtb2 = dealwithblank (StrtB1)</p> <p>TextBox2.text = startb2</p> <p>End Sub</p> <p>Function DealwithBlank (Byval Str As String) AS String</p> <p>Str = regex.replace (STR, "^ * / r / n", "", regexoptions.multiline)</p> <p>Str = Regex.Replace (STR, "/ R / N * $", VBCRLF, RegexOptions.Multiline</p> <p>Str = regex.replace (STR, "(/ R / N) {1,}", VBCRLF)</p> <p>Str = regex.replace (STR, "/ r / n $", "")</p> <p>Return Str</p> <p>END FUNCTION</p> <p>END CLASS</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-42148.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="42148" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.031</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'rXQNRXVzmgkFg_2BHLY9p_2F_2FuNWJf1HTO3lRqWYQIXL_2FQlnB1ALVvbCxFZB4RNJ7gInrFJTZvPVV6OrHqIntRHyzA_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>