删除文本区域中被 jQuery.trim() 忽略的空格

Removing whitespace in textarea ignored by jQuery.trim()

我有一个 <textarea>,其中包含 php 调用的文本。文本包含用户的 ID,因此它对于每个用户都是不同的。但是,html 看起来总是这样:

<div>
    <textarea id="text" readonly="readonly">"        example text       "</textarea>
</div>

如何删除这些空格。我在 SO 上尝试了多个 trim 建议或 Regex 方法,但其中 none 有效。 textarea 无法更改为 divp

更新:
正则表达式以某种方式被忽略,但下面的答案给出了结果:

$("#text").val((i, v) => '${v.slice(1, -1).trim()}');

您可以使用正则表达式删除引号和空格

$("#text").val($("#text").val().replace(/^"\s+(.*?)\s+"$/,""));
console.log(">"+$("#text").val()+"<")
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
    <textarea id="text" readonly="readonly">"        example text       "</textarea>
</div>

.replace() 中使用匹配多个 space 的正则表达式模式 /\s{2,}/g 并将它们从字符串中删除。

$("#text").val((i, v) => v.replace(/\s{2,}/g, ''));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
    <textarea id="text" readonly="readonly">"        example text       "</textarea>
</div>

您还可以使用 String.slice() 从字符串的开头和结尾删除 ",然后使用 .trim() 删除 space。最后用 ""

包裹字符串
$("#text").val((i, v) => `"${v.slice(1, -1).trim()}"`);