我有一个<TextArea>
输入,允许用户输入以逗号分隔的列表,然后该列表在每个,
处解析输入的值。我正在使用基本的.split()
方法。显然,这并不涵盖许多情况。我还需要考虑CR / LF字符(换行符等)以及前导和尾随空格。
在我的情况下也是这样;如果值已经被双引号引起来,我就不想添加另一组双引号。即“ 4456”,“ 54456”将被视为“ 4456”,“ 54456””。
我解析输入值的函数如下:
addSelectorValue = e => {
e.stopPropagation();
e.preventDefault();
this.setState(
({ selectorValues, selectorValue }) => ({
selectorValues: [...selectorValues, ...selectorValue.split(",")],
selectorValue: ""
}),
() => {
console.log("Array of selectorValues: ", this.state.selectorValues);
}
);
};
是否要遵循某些库或最佳实践(例如正则表达式)来实现上述情况?
我有一个沙箱演示了我的use case here。输入一些值或用" "
包装后的值后,如果您在表单上按下提交按钮,您将看到正在提交的换行符。
答案 0 :(得分:1)
您可以:
00000722
的匹配项替换为空字符串来删除所有新行。/\r?\n|\r/g
将该字符串放入一个以split
作为分隔符的数组中。,
每个子字符串。trim
删除"
周围的内容。.replace(/^"(.*)"$/, "$1")