javascript - 在 JavaScript 中给定句子的每个单词前添加 +

标签 javascript regex

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

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

我找到了一些解决方案,但这些都不能解决我的问题。我尝试过以下方式。但它给了我这样的输出: 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 

最佳答案

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

var str = "I have a pen";
str = str.replace(/(^|\s+)/g, "$1+");
console.log(str);

使用 \s(空格)的好处是你不必担心“单词字符”是什么,所以即使在具有不同“单词字符”的语言中它也能很好地工作"而不是 JavaScript 定义的英文。例如,挪威语:

var str = "Jeg bor i Østlandet distriktet";
str = str.replace(/(^|\s+)/g, "$1+");
console.log(str);

关于javascript - 在 JavaScript 中给定句子的每个单词前添加 +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37407711/

相关文章:

java - 使用 String.replace ("",""替换以逗号分隔的数字;

用于将单词列入黑名单的 JavaScript 正则表达式

javascript - 如何调查为什么 setTimeout 函数在我的代码中不起作用?

php - 访问复选框表中的相应数据

javascript - 自执行函数奇怪的行为?

html - 正则表达式删除字符串末尾的 HTML 换行符

RegEx 使用 Notepad++ 排除行

javascript - 如何在 JS 正则表达式中表达 "iPhone10,3"、 "iPhone10,6"、 "iPhone11,2"、 "iPhone11,4"、 "iPhone11,8"中的任何一个

javascript - 如何使 Google 链接图表动态化

php - 如何在组件中保持页眉和页脚相同,内容将发生变化