【问题标题】:How can I strip textarea content? [duplicate]如何剥离 textarea 内容? [复制]
【发布时间】:2019-09-25 05:46:48
【问题描述】:

我有一个textarea,里面有一些内容。

类似这样的:

Some line of text [185047078]1x some more text of - Type 1
[185047138]1x some other text of - Type 2

我要做的是去除除[185047078][185047138] 之外的所有文本。我想稍后用该数据创建一个数组。 由于括号之间的数据是动态的,而且 textarea 可以有 20 多行文本,我正在寻找一种逻辑方式来剥离这个 textarea。

但我不确定如何开始剥离此文本区域。 由于您无法在 textarea 中搜索或搜索某些内容,唯一的选择就是剥离所有文本?

但我不知道如何开始。

我尝试的是:

var txt = $(this).text() 


txt = txt.match(/\d/g).join('')
txt = txt.replace(/\D/g,'');
txt = txt.replace(/&\/\\#,+()$~%.'":*?<>{}/g, '');

剥离这个文本区域的正确语法是什么,所以我最终会得到[185047078][185047138]

【问题讨论】:

  • jQuery 不是字符串操作库。它是一个 DOM 操作库。为此使用香草 javascript。
  • 您只想要方括号中的特定数字还是一般的任何数字?
  • 这里和jQuery无关...

标签: javascript


【解决方案1】:

您可以匹配所有非括号部分,后跟一个右括号。

var string = 'Some line of text [185047078]1x some more text of - Type 1\n[185047138]1x some other text of - Type 2',
    values = string.match(/[^\]\[]+(?=\])/g);

console.log(values);

值在括号中的数组

var string = 'Some line of text [185047078]1x some more text of - Type 1\n[185047138]1x some other text of - Type 2',
    values = string.match(/\[[^\]]+\]/g);

console.log(values);

【讨论】:

  • 感谢您的回答!它的工作原理应该如此。但是,当这是在 each() 函数中时,您知道为什么不能将 push 它添加到新数组中吗?
  • 我不知道。
【解决方案2】:
(?<=\[)(.*?)(?=\])

如果真的需要,可以再次添加括号。

见:https://regex101.com/r/tRXY7r/1

【讨论】:

    【解决方案3】:

    只需定义正则表达式,在本例中为 /(\[)(.*?)(\])/,然后使用它从字符串中选择文本

        let regex = /(\[)(.*?)(\])/;
        //the text to search 
        let text = "Some line of text [185047078]1x some more text of"
        //regex result
        let result = regex.exec(text);
        
        console.log(result);

    这将为您提供一个包含 4 个元素的数组。整个值,一个包含正则表达式第一部分的字符串,一个包含中间部分的字符串和一个包含正则表达式最后一位的字符串。

    【讨论】:

      【解决方案4】:

      试试

      txt.match(/\[\d*\]/g)
      

      在哪里

      • \[\] 表示匹配的字符串应该以 [ 开头并以 ] 结尾
      • \d* 表示数字序列(方括号之间)
      • g 表示找到所有(不是第一个)

      let txt = data.value.match(/\[\d*\]/g);
      console.log(txt);
      <textarea id="data">Some line of text [185047078]1x some more text of - Type 1
      [185047138]1x some other text of - Type 2</textarea>

      【讨论】:

        猜你喜欢
        • 2011-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-04
        • 2020-08-22
        • 2016-12-15
        • 2022-10-02
        • 1970-01-01
        相关资源
        最近更新 更多