反应-用逗号解析用户输入的值并删除CR / LF和空格

时间:2019-03-20 18:21:38

标签: javascript reactjs

我有一个<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。输入一些值或用" "包装后的值后,如果您在表单上按下提交按钮,您将看到正在提交的换行符。

1 个答案:

答案 0 :(得分:1)

您可以:

  1. 通过将所有与00000722的匹配项替换为空字符串来删除所有新行。
  2. /\r?\n|\r/g将该字符串放入一个以split作为分隔符的数组中。
  3. ,每个子字符串。
  4. 在每个子字符串上用trim删除"周围的内容。
.replace(/^"(.*)"$/, "$1")