如何正确地将双引号添加到Textarea

时间:2015-11-02 22:05:34

标签: javascript jquery

我需要一个textarea在textarea值的开头和结尾包含一组双引号。下面的代码的工作原理是双引号被添加到字段的开头和结尾,但如果用户输入文本然后返回到字段,则可以添加多个双引号集。我怎么能阻止这个? jQuery解决方案也是可以接受的。

<textarea name="quoteName" id="quoteName" style="width:100%" rows="4" onChange="quotes();" autofocus></textarea>

function quotes(){
  var quoteValueBefore = document.getElementById("quoteName").value;
  var ensureQuotes = "\"" + quoteValueBefore + "\"";
  document.getElementById("quoteName").value = ensureQuotes;
}

2 个答案:

答案 0 :(得分:0)

检查文本是否已经以引号开头,以及它是否已经以引号结束。如果缺少其中任何一个,请添加它。

同时检查长度&gt; = 2,否则"将通过测试(以报价结束?检查。以报价开头?检查。)

&#13;
&#13;
function quotes() {
  var quoteValue = document.getElementById("quoteName").value;

  if (!quoteValue.match(/^"/))
    quoteValue = '"' + quoteValue;

  if (!quoteValue.match(/"$/))
    quoteValue += '"';

  if (quoteValue.length < 2)
    quoteValue += '"';

  document.getElementById("quoteName").value = quoteValue;
}
&#13;
<textarea name="quoteName" id="quoteName" style="width:100%" rows="4" onChange="quotes();" autofocus></textarea>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

function checkQuotes(id) {
  str = document.getElementById(id).value;
  if (str[0] != '"') {
    str = '"'.concat(str);
  }
  if (str[str.length - 1] != '"') {
    str = str.concat('"')
  }
  return str
}

function quotes() {
  withQuotes = checkQuotes("quoteName");
  document.getElementById("quoteName").value = withQuotes
}
<textarea name="quoteName" id="quoteName" style="width:100%" rows="4" onchange="quotes()">testing the quotes feature</textarea>

此片段将检查第一个字符是否为引号,如果不是,它将在它之前添加。它还会检查最后一个字符是否为引号,如果不是,它会附加它。这可能不是最友好的UI解决方案,我建议您通过CSS添加它,如果您将其用于显示目的,或使用PHP或您正在为后端表单提交做的任何事情。