如何在经典ASP中将文本作为列表分隔

问题描述

我有一个问题,我需要弄清楚如何分割在文本区域中输入的文本,但是在键入时只是视觉上的排序,我将对其进行详细说明。

确定的用户在文本区域中输入类似的内容

这是输入的样子

1- sample text 1.
2- sample text 2.
3- sample text 3.

这是用户在文本框中键入它的方式,但是当我显示它时,它看起来像这样(请注意,并非所有用户都以点结尾)

1- sample text 1. 2- sample text 2. 3- sample text 3.

我如何将它们视觉上分开并将其显示为列表?我尝试了replace,mid和其他功能,但没有用,谢谢。

解决方法

如果您只是想显示它像键入时一样,没有太多麻烦,可以在一行代码中使用replace()

replace(inputFieldString,vbCrlf,'<br>')

我们的某些较旧的系统将这种方法用于文本区域输入的内容。快速简便。

,

相反,尝试此操作,在换行符处分割文本并在数组上循环以创建列表:

function addText() {
  let list = document.querySelector('#list');
  let text = document.querySelector('#text').value;
  let values = text.split('\n');

  let listFragment = new DocumentFragment();

  values.forEach(value => {
    let span = document.createElement('span');
    span.textContent = value + ' ';
    listFragment.append(span);
  });

  list.append(listFragment);
}
<textarea id="text"></textarea>
<button onClick="addText()">enter</button>
<div id="list"></div>

,

由于HTML会忽略空格,因此您不会看到换行符,但是可以通过查看浏览器页面源代码来确认换行符是否存在。

例如,如果要获取文本并将其输出为无序列表(<ul>),则可以执行以下操作;

<%
Option Explicit

'Starting point for the script.
Call init_page()

Sub init_page()
  Dim issubmit: issubmit = (Request.Form.Count > 0)
  Dim value: value = Request.Form("sampletext") & ""

  Call build_form(value)
  If issubmit Then
    Call Response.Write(build_list(value))
  End If
End Sub

Sub build_form(value)
%>
<form method="POST">
  <textarea name="sampletext" rows="5"><%= value %></textarea>
  <button>Submit</button>
</form>
<%
End Sub

Function build_list(value)
  Dim html,list,item,items
  If Len(value) < 1 Then build_list = ""
  list = Split(value,vbNewLine)
  If IsArray(list) Then
    html = "<ul>"
    items = UBound(list)
    For item = 0 To items
      html = html & "<li>" & list(item) & "</li>"
    Next
    html = html & "</ul>"
  Else
    html = "Error: List was not in the correct format"
  End If
  build_list = html
End Function
%>

该示例是一个单页ASP页面脚本,该脚本将表单发布到自身,并使用一个函数来获取发布的文本,使用Split()将其转换为数组,并使用该数组构建一个无序列表,该列表是写回页面。这绝不是解决方案,它旨在作为培训练习,应该使您对如何在自己的项目中执行此操作有所了解。