JS函数如何传递带空格参数

JavaScript027

JS函数如何传递带空格参数,第1张

Javascript函数中传递带空格的参数

通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用Javascript函数的方式:<a href=javascript:somefunction(args)>content</a>。注意,这么写是有问题的,问题就在于somefunction中的参数args的值不能含有空格,否则浏览器会认为空格后面的内容是<a>标签的某个属性,正确的写法应该是用引号将javascript:somefunction(args)引起来。另外还有一种方法可不必加这对引号,先将可能带空格的参数用escape函数处理一下,然后在somefunction中用unescape函数解码就行了。值得注意的是用encodeURI、decodeURI加解码却不能成功。

encodeURIComponent和decodeURIComponent三对组合之间的区别:

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

简单总结一下用法,在不经过URL的时候,即纯Javascript调用用escape;涉及URL时,通常用encodeURI对整个URL进行处理,仅当URL中含有特殊参数时,对该特殊参数局部使用encodeURIComponent。

一、函数

 

function trim(str){ //删除左右两端的空格

return str.replace(/(^\s )|(\s $)/g, "")

}

function ltrim(str){ //删除左边的空格

return str.replace(/(^\s*)/g,"")

}

function rtrim(str){ //删除右边的空格

return str.replace(/(\s*$)/g,"")

}

函数调用 trim(str)

二、js对象的方法

String.prototype.trim=function(){

return this.replace(/(^\s )|(\s $)/g, "")

}

String.prototype.ltrim=function(){

return this.replace(/(^\s*)/g,"")

}

String.prototype.rtrim=function(){

return this.replace(/(\s*$)/g,"")

}

类中方法调用 str.trim()

三、将公共方法提取到一个或多个公共js文件,需要的时候直接引用;

在写JS代码的时候,大家可以会发现这样现象:

document.write("

1

2

3

")

结果:

1

2

3

无论在输出的内容中什么位置有多少个空格,显示的结果好像只有一个空格。

这是因为浏览器显示机制,对手动敲入的空格,将连续多个空格显示成1个空格。

解决方法:

1.

使用输出html标签 来解决

document.write(" "+"1"+""+"23")

结果:

1

23

2.

使用CSS样式来解决

document.write("<span

style='white-space:pre'>"+"

1

2

3

"+"</span>")

结果:

1

2

3

在输出时添加“white-space:pre

”样式属性。这个样式表示"空白会被浏览器保留"

以上这篇JS输出空格的简单实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。