我如何从字符串的开始和结束删除所有空白?


当前回答

下面是它的TypeScript格式:

var trim: (input: string) => string = String.prototype.trim
    ? ((input: string) : string => {
        return (input || "").trim();
    })
    : ((input: string) : string => {
        return (input || "").replace(/^\s+|\s+$/g,"");
    })

如果本机原型不可用,它将回退到正则表达式。

其他回答

如果使用jQuery,请使用jQuery.trim()函数。例如:

if( jQuery.trim(StringVariable) == '')

我知道这个问题三年前就有人问过了。现在,String.trim()是在JavaScript中原生添加的。举个例子,你可以像下面这样直接修剪,

document.getElementById("id").value.trim();

适用于IE9+及其他浏览器

function trim(text) {
    return (text == null) ? '' : ''.trim.call(text);
}

不知道有什么虫子可以藏在这里,但我用这个:

var some_string_with_extra_spaces="   goes here    "
console.log(some_string_with_extra_spaces.match(/\S.*\S|\S/)[0])

或者这个,如果文本包含回车:

console.log(some_string_with_extra_spaces.match(/\S[\s\S]*\S|\S/)[0])

另一个尝试:

console.log(some_string_with_extra_spaces.match(/^\s*(.*?)\s*$/)[1])

我为trim写了这个函数,当时.trim()函数在2008年的JS中还不可用。一些旧的浏览器仍然不支持.trim()函数,我希望这个函数可以帮助到一些人。

修剪函数

function trim(str)
{
    var startpatt = /^\s/;
    var endpatt = /\s$/;

    while(str.search(startpatt) == 0)
        str = str.substring(1, str.length);

    while(str.search(endpatt) == str.length-1)
        str = str.substring(0, str.length-1);   

    return str;
}

解释:函数trim()接受一个字符串对象,删除任何开头和结尾的空格(空格、制表符和换行符),并返回经过修剪的字符串。您可以使用此函数修改表单输入,以确保发送的数据是有效的。

函数的调用方法如下所示。

form.elements[i].value = trim(form.elements[i].value);