在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);
});