添加+;JavaScript中给定句子的每个单词前面

添加+;JavaScript中给定句子的每个单词前面,javascript,regex,Javascript,Regex,我认为这个问题可以用正则表达式解决。但不幸的是,我不擅长正则表达式。我现在有一个句子,我想在每个单词前面加上“+” 示例:输入:我有一支笔 输出将是:+I+有+a+笔 我已经找到了一些解决办法,但这些都不能解决我的问题。我试过下面的方法。但它给了我这样的输出: I+have+a+pen+但我想要+I+have+a+pen $('.addCharacter').click(function(event) { var textareaInput=$('.textareaInput')

我认为这个问题可以用正则表达式解决。但不幸的是,我不擅长正则表达式。我现在有一个句子,我想在每个单词前面加上“+”

示例:输入:我有一支笔
输出将是:+I+有+a+笔

我已经找到了一些解决办法,但这些都不能解决我的问题。我试过下面的方法。但它给了我这样的输出:
I+have+a+pen+
但我想要
+I+have+a+pen

  $('.addCharacter').click(function(event) {
      var textareaInput=$('.textareaInput').val();
      var strToArr=textareaInput.split(' ');
      var arrUniqueVal=arrUnique(strToArr);

      $('.textareaInput').val(arrUniqueVal.join('+'));
      console.log(arrUniqueVal);
      //alert("ok");
   });
注:我想能够输入多个句子

更新:输入:

hello world one  
hello world two  
hello world three 
输出:

+hello +world +one  
+hello +world +two  
+hello +world +three 

上面的regexp将匹配单词的开头并添加“+”。

您可以使用以下正则表达式:
/(^ |\s+)/g
,表示匹配字符串的开头(
^
)或(
)一系列空白字符(
\s+
)。它周围的
()
使它成为一个捕获组。然后使用替换字符串
替换
“$1+”
$1
表示“将捕获组的内容放在此处”,并且
+
是一个文本
+
字符。正则表达式上的
g
表示“全局”(例如,在整个字符串中):

var str=“我有一支笔”;
str=str.replace(/(^ |\s+)/g,“$1+”;

console.log(str)为什么不
“+”+句子。拆分(“”)。加入(“+”)
?试试这个var str=“我有一支笔”;str=str.replace(/\s+/g,“+”)@navnit:如果您将其更改为
str=str.replace(/(^\s+)/g,“$1+”),这将是一个非常好的答案(而不是评论)。比我的答案好多了。我建议贴出来。谢谢你的建议@T.J.Crowder
str = str.replace(/\b\w/g, "+");