我在Angular中有一个响应式表单,它以文本输入形式获取文件格式。
<input type="text" name="formats" formControlName= "formats">
例如: .txt、.zip、.tar.gz
我需要将这些输入转换为数组列表。在@danday74的帮助下,我可以做到这一点。以下是代码:
const input = ".txt, .zip, .tar.gz"
const parts = input.split(' ')
const output = parts.map(x => x.replace(',', '').replace('.', ''))
console.log(output)
代码生成的输出是
["txt","zip","tar.gz"]
,这正是我所期望的。然而,我的担忧是,如果用户输入像这样的内容
.. ., .tar.gf.ds ,.tar
或者tar tar.gz zip
,那么输出将分别是[".","","tar.gf.ds","tar"]
和["tar","targz","zip"]
。我的问题是,我该如何实现这样一种方式,使得用户可以输入文件格式而不需要特定的结构(例如:
.txt, .zip, .tar.gz,
.txt .zip .tar.gz
, txt, zip, tar.gz
, txt zip tar.gz
),并且我应该能够生成这样的输出["txt","zip","tar.gz"]
。即我应该能够忽略输入中的..
或.,
,只考虑有字符串的输入。