function trim(str,options){
var string = str.replace(/^\s\s*/, ''),
ws = /\s/,
i = str.length,
j = -1;
if(options==="begin"){while(ws.test(string.charAt(++j)));return string.slice(j,i);}
if(options==="end"){while(ws.test(string.charAt(--i)));return string.slice(j+1,i+1);}
while(ws.test(string.charAt(--i)));while(ws.test(string.charAt(++j)));
return string.slice(j, i + 1);
}
Run Code Online (Sandbox Code Playgroud)
此函数是您在C#中找到的Trim()方法的实现.
我添加了在开头和结尾都删除withspace的选项.问题是,我不能让它在演示中工作.
我做的是这样的:
var a = " zareaerar arzare ";
var b = "aezze azeze a ";
var c = "azrazza rzrzrzrp"
var d = " aezzaeazeazeaz azez ";
document.write('<p style="backround:#ff0000">',trim(a,"begin"),'</p>','<br />');
document.write('<p style="backround:#ff0000">',trim(b,"begin"),'</p>','<br />');
document.write('<p style="backround:#ff0000">',trim(c,"begin"),'</p>','<br />');
document.write('<p style="backround:#ff0000">',trim(d,"begin"),'</p>','<br />');
Run Code Online (Sandbox Code Playgroud)
首先,没有出现背景颜色,字符串也似乎松散了字符串中间的空格......
这仅适用于用户输入吗?这些天字符串会自动修剪吗?
1)你没有看到背景,因为你有一个拼写错误:backround而不是background
2)在HTML中,对于多个空格没有意义. 如果要在段落中的单词之间插入不间断的空格,则需要使用.
注意,源文档中的单词之间的一系列空白空间可能导致完全不同的渲染的字间间隔(除了PRE元素的情况).特别是,用户代理应在生成输出字间空间时折叠输入空格序列.即使没有语言信息(来自lang属性,HTTP"Content-Language"标题字段(参见[RFC2616],第14.12节),用户代理设置等),这也可以而且应该完成.
PRE元素用于预格式化文本,其中空白区域很重要.