如何删除文本区域内容?

时间:2019-05-07 14:19:38

标签: javascript

我有一个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。

但是我不确定开始剥离该文本区域的方法是什么。 由于您无法在文本区域中搜索或搜索某些内容,因此唯一的选择是是否也剥离所有文本?

但是我不知道如何开始。

我尝试过的是:

var txt = $(this).text() 


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

剥离此文本区域的正确语法是什么,所以我将以[185047078][185047138]结尾?

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

(?<=\[)(.*?)(?=\])

如果确实需要,可以再次添加括号。

请参阅:https://regex101.com/r/tRXY7r/1

答案 2 :(得分:0)

尝试

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

其中

  • \[\]表示匹配的字符串应该以{{1​​}}开头并以[结束
  • ]表示数字序列(在方括号之间)
  • \d*表示查找所有(不是第一个)

g
let txt = data.value.match(/\[\d*\]/g);
console.log(txt);

答案 3 :(得分:0)

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

    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个元素的数组。整个值,一个包含正则表达式第一部分的字符串,一个包含中间部分的字符串和一个包含正则表达式最后一位的字符串。