正则表达式删除双空格的问题

时间:2011-08-26 06:28:00

标签: javascript regex

我使用简单的JavaScript正则表达式删除了双倍空格:

例如

" I am                          working   on my Laptop.  "
as
"I am working on my laptop."

为此我使用了这个功能。但它的工作。

function valid(f)
{
    f.value = f.value.replace(/[^a-zA-Z\s.'-,]/gixsm, '');
    f.value = f.value.replace(( /\s+/g, ' '); //remove more than 2 white spaces spaces.
    f.value = f.value.replace(/^\s+|\s+$/g, ''); //remove spaces of before new line.
}

2 个答案:

答案 0 :(得分:0)

你唯一的问题是这行中的((加倍:

f.value.replace(( /\s+/g, ' ');

之后,一切正常。

var f = {};
f.value = " I am                          working   on my Laptop.  "

function valid(f)
{
    f.value = f.value.replace(/[^a-zA-Z\s.'-,]/gixsm, '');
    // notice the single paren here!
    f.value = f.value.replace( /\s+/g, ' '); 
    f.value = f.value.replace(/^\s+|\s+$/g, ''); 
}
valid(f)
console.log( f.value ) // I am working on my laptop.

答案 1 :(得分:0)

这很好用

var string = " I am                          working   on my Laptop.  ";
function valid(f)
{
    f = f.replace(/[^a-zA-Z\s.'-,]/gixsm, '');
    f = f.replace( /\s+/g, ' '); //remove more than 2 white spaces spaces.
    f = f.replace(/^\s+|\s+$/g, ''); //remove spaces of before new line.
    return f;
}

document.write(valid(string));

你在第二次替换时有一个左括号。