我认为这个问题可以用正则表达式来解决。但不幸的是我不擅长正则表达式。我现在有一句话,我想在每个单词前加上'+'。
示例:输入:我有一支笔
输出将是: +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/