我想在任意两个单词之间仅允许最多10个
,并删除剩余的
。如何使用正则表达式在JavaScript中执行此操作?
答案 0 :(得分:2)
str.replace(/\ {11,}/g, " ");
答案 1 :(得分:0)
可替换地:
str.replace(/(\ {10})\ */g, "$1")
答案 2 :(得分:0)
您不必使用Regex来满足此要求。我们将在一个简单的函数中使用JavaScript String对象的split方法,如下所示:
function firstTen(txt){
arr = txt.split(" ");
out = '';
for (i = 0; i < arr.length; i++){
if (i < 10){
out += arr[i]+" ";
}
else{
out += arr[i];
}
}
return out;
}
txt = "1 2 3 4 5 6 7 8 9 10 Apple Egypt Africa"
alert(firstTen(txt));
答案 3 :(得分:0)
我首先要用10
的
for (var spaces = '', i = 0; i < 10; i++) spaces += ' ';
然后我会在以下正则表达式(p)
中将其用作替换str = str.replace(/([^\s])?(\s| ){11,}(?=[^\s]|$)/g, '$1'+spaces)
以下是模式的细分:
([^\s])? # 0 or 1 character other than white space
(\s| ){11,} # any white space or used more than 10
(?=[^\s]|$) # followed by a character other than a white space
# or it is the end of string
编辑:我替换了模式中的边界字符(\b
),因为它与unicode字符边界不匹配。