Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中的句子(多个句子)的第一个和最后一个单词中添加方括号_Javascript_Regex - Fatal编程技术网

在Javascript中的句子(多个句子)的第一个和最后一个单词中添加方括号

在Javascript中的句子(多个句子)的第一个和最后一个单词中添加方括号,javascript,regex,Javascript,Regex,我将输入几个句子,输出将用方括号将每个句子括起来。到目前为止,我已经尝试过: $('.addCharacter').click(function(event) { var textareaInput=$('.textareaInput').val(); var myString = '[' + textareaInput + ']'; console.log(myString); }); 输入: demo text one demo text two d

我将输入几个句子,输出将用方括号将每个句子括起来。到目前为止,我已经尝试过:

  $('.addCharacter').click(function(event) {
    var textareaInput=$('.textareaInput').val();
    var myString = '[' + textareaInput + ']';
    console.log(myString);
  });
输入:

demo text one  
demo text two  
demo text three
输出:

[demo text one
demo text two
demo text three]
但我希望输出应该是:

[demo text one]
[demo text two]
[demo text three]
我想可以用正则表达式来做。我对正则表达式不太在行。有人能告诉我怎么走吗

更换此线路

 var myString = '[' + textareaInput + ']';

如果要获得额外的空间,请使用此正则表达式(
/\s*\n\s*/
)进行拆分

 var myString = '[' + textareaInput.split(/\s*\n\s*/).join("]\n[") + ']';
非正则表达式方式:

var textareaInput=`demo text one
演示文本二
演示文本三`;
var res='['+textareaInput.split(“\n”).map(x=>x.trim()).join(“]\n[”+”)”);
document.body.innerHTML=“+res+”使用带有正则表达式的

$('.addCharacter').click(function(event) {
    var textareaInput=$('.textareaInput').val().split('\n');
    var output = '';
    $(textareaInput).each( function() {
      output += '[' + this + ']\n';
    });
    console.log(output);
});
多行;将开头和结尾字符(^和$)视为在多行上工作(即,匹配每行的开头或结尾(由\n或\r分隔),而不仅仅是整个输入字符串的开头或结尾)(取自)

var textareaInput=`demo text one
演示文本二
演示文本三`;
var myString=textareaInput.replace(/^[^\S\r\n]*(.*?[^\S\r\n]*$/gm,[$1]');
log(myString)您可以使用方法而不是正则表达式:


在这种情况下,它将创建一个包含所有新行的数组,您将能够按自己的方式连接每一行。

一个句子的每一个最后一个单词都有一个空格在您的方式中。但它不应该有。根据帮助我很多。一个句子的每一个最后一个单词都有一个空格在您的方式中。但是它不应该有。根据帮助我很多。这有点不同我的as
至少需要1个字符。因此,如果字符串都是空白,那么输出行将是
[]
,而不是
[]
。另外,由于
\s
匹配一个换行符,空的或只有空格的行将被收缩/合并。是的,只是
[]
不匹配非中断空格和一些其他Unicode空格。@ChoncholMahmud:此解决方案将空格保留在行的开头/结尾,您可以使用。这有点不一致。@WiktorStribiżew也处理了同样的问题。谢谢你指出。我仍然认为我有一个更好的。您的将删除空/空白行。
$('.addCharacter').click(function(event) {
    var textareaInput=$('.textareaInput').val().split('\n');
    var output = '';
    $(textareaInput).each( function() {
      output += '[' + this + ']\n';
    });
    console.log(output);
});