如果超过10,请删除

时间:2012-12-15 16:27:49

标签: javascript html regex ckeditor

我想在任意两个单词之间仅允许最多10个 ,并删除剩余的 。如何使用正则表达式在JavaScript中执行此操作?

4 个答案:

答案 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));​

以下是演示:http://jsfiddle.net/saidbakr/KMQAV/

答案 3 :(得分:0)

我首先要用10 &nbsp;

创建一个变量
for (var spaces = '', i = 0; i < 10; i++) spaces += '&nbsp;';

然后我会在以下正则表达式(p)

中将其用作替换
str = str.replace(/([^\s])?(\s|&nbsp;){11,}(?=[^\s]|$)/g, '$1'+spaces)

以下是模式的细分:

([^\s])?          # 0 or 1 character other than white space
(\s|&nbsp;){11,}  # any white space or &nbsp; used more than 10
(?=[^\s]|$)       # followed by a character other than a white space
                  # or it is the end of string

编辑:我替换了模式中的边界字符(\b),因为它与unicode字符边界不匹配。