JavaScript replace() Method: remove empty space just at the end and at the beginning of the string
Possible Duplicate:
How do I trim a string in javascript?
号
通过在javascript中使用replace方法,我尝试删除字符串开始和结束之间的空白:
这里是我的代码:
你知道我该如何达到这个结果吗?
1 2 | input ->" first second ".replace(/[^\s|\s$]/g, ''); //"" output ->"first second" |
这叫做修剪。
在正则表达式中需要括号而不是括号,并且在空白说明符上还需要一个乘法器来匹配多个空格:
1 | var s =" first second ".replace(/(^\s+|\s+$)/g, ''); |
号
演示:http://jsfiddle.net/guffa/n7xxt/
在脚本开头添加:
1 2 3 4 5 6 7 | // Add ECMA262-5 string trim if not supported natively // if (!('trim' in String.prototype)) { String.prototype.trim= function() { return this.replace(/^\s+/, '').replace(/\s+$/, ''); }; } |
然后使用
应使用括号()指定要匹配管道""符号的左侧或右侧,而不是方括号。方括号实际上匹配字符集(即[葡萄]将匹配"g"、"r"、"a"、"p"、"e"或"s"的单个实例,而(葡萄苹果)将匹配"葡萄"或"苹果"。
另外,还有一件事你不知道,那就是"数量"。换句话说,一旦匹配了一个空格(s),它应该查找多少个空格?在您的示例中,它只匹配一个空格字符。您可能希望匹配字符串左右两侧存在的尽可能多的连续空格。为此,您需要在字符s之后立即附加*(匹配零或多个)或+(匹配一个或多个)。
因此,要重写regex:
1 2 3 | var input =" first second "; var trimmed = input.replace(/(^\s+|\s+$)/g, ''); console.log(trimmed); |
您可以将这些行复制并粘贴到您的javascript控制台中,以查看您是否获得了所需的输出。这里的regex字面意思是"从字符串开始匹配一个或多个空格字符,或者在字符串结束后立即匹配一个或多个空格字符。"然后replace函数接受该匹配并将其替换为""。
对您的模式进行了细微的修改:
1 | (^\s+|\s+$) |
。
然后
1 2 | var string =" test "; string.replace(/(^\s+|\s+$)/gm, ''); |
。
应该有效;-)
可以使用jquery trim。
1 2 3 4 5 6 | <html> <head> <script src="http://code.jquery.com/jquery-latest.js"> </head> <body> [cc lang="javascript"] |
1 |
。var str="第一秒";$("original").html("原始字符串:'"+str+"'");$("trimmed").html("在trimmed之后:""+$.trim(str)+""'");