如何限制输入值并单独保存jQuery?

时间:2018-03-28 01:00:09

标签: javascript jquery

我是一个jquery初学者,正在处理输入,如图所示,用户必须遵循正确的语法,如“name = value”。如果输入的数据格式正确或“=”的右侧或左侧有任何空格,我想进行验证。为此,我可以使用trim()。我正在努力的部分是如何将用户输入分为3个部分“name”,“=”和“value”,因为稍后,我想按名称和值对列表进行排序。请有人指出我正确的方向。

Image Link

我的代码

$("#add-pair").on("submit", function(e) {
e.preventDefault();
const addItem = $('#add-pair > input[type="text"]').val();
if (!addItem || addItem === null) {
  $("#add-pair").append(
    '<div class="error">Cannot post empty string. Please add Name=Value!</div>'
  );
  setTimeout(function() {
    $(".error").fadeOut();
  }, 4000);
} else {
  $li = $("<li>");
  $textSpan = $("<span>")
    .addClass("name")
    .text(addItem);
  $deleteSpan = $("<span>")
    .addClass("btn delete")
    .text("Delete");
  $listItem = $li.append($textSpan).append($deleteSpan);
  $("#list")
    .hide()
    .prepend($listItem)
    .fadeIn(500);
}

});

<form id="add-pair">
                <input type="text" name="addPair" id="input" placeholder="Name=Value..." />
                <button class="btn">Add</button>
            </form>

1 个答案:

答案 0 :(得分:0)

尝试使用split=之前和=之后的字符串中拆分:

const inputStr1 = ' name   = value  ';
const inputStr2 = ' name   value  ';
function validate(str) {
  if (!str.includes('=')) {
    console.log('no = found, returning');
    return;
  }
  const [cleanedName, cleanedValue] = str.split('=').map(uncleanStr => uncleanStr.trim());
  console.log('returning values "' + cleanedName + '" "' + cleanedValue + '"');
  return [cleanedName, cleanedValue];
}

const results1 = validate(inputStr1);
const results2 = validate(inputStr2);