【发布时间】:2018-05-13 00:33:31
【问题描述】:
我想从文本区域检索字符串,然后删除具有起始字符'>'的行(不管'>'前面是否有空格),删除一个或多个'- ', 然后将字符串拆分为数组,结果如下:
[BBAAAACC, CBDAAAACC, EBAAAACC, FBAAAACC]
我已经尝试使用正则表达式跟随但无法得到结果。
var data = document.getElementById("data").value.replace(/^[>-]+/g,"");
var array = data.split("\n");
console.log(array);
<textarea rows="15" cols="50" id="data">
>1/1AA
BBAAAACC-------------------------------------------------------------
------------------------------------------------------------------------
-------------
>2/1B
CBDAAACC-------------------------------------------------------------
------------------------------------------------------------------------
-------------
>3/1-CD
EBAAAACC-------------------------------------------------------------
------------------------------------------------------------------------
-------------
>4/1-11
FBAAAACC-------------------------------------------------------------
------------------------------------------------------------------------
-------------
</textarea>
【问题讨论】:
-
如果您只需要从每行的开头获取 1+ 个大写 ASCII 字母的块,请尝试
var data = document.getElementById("data").value.match(/^\s*[A-Z]+/mg).map(x => x.trim())。 -
您的结果是否始终采用 AAABBBCCC 格式?您可以将正则表达式更改为仅匹配从 A 到 Z [A-Z]+ 的字符
-
我想删除以'>'开头的行(前面有/没有空格),并删除所有'-'
-
非常感谢 Wiktor,我已经尝试了您的解决方案,它有效!
标签: javascript regex replace split