怎么用js提取字符串中的某一段字符

JavaScript023

怎么用js提取字符串中的某一段字符,第1张

String.prototype.getQuery = function(name)

{

var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)")

var r = this.substr(this.indexOf("\?")+1).match(reg)

if (r!=null) return unescape(r[2])return null

}

var s = "web1.aspx?status=item&mode=edit"

alert(s.getQuery("status"))

alert(s.getQuery("mode"))

String.prototype.getQuery = function(name)

的意思是为String对象增加一个getQuery(name)方法.

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 eb(ting)

{

//传入要加密的url

//获取url参数部分

var paraString = ting.substring(ting.indexOf("?")+1,ting.length)

//将加密后的参数重新组合到url中

var rul=ting.substring(0,ting.indexOf("?")+1)+escape(paraString)

//跳转到rul页面呢

location.href=rul

}

解密代码

var urlPara = location.search//获取参数部分

urlPara=unescape(urlPara)//对参数解密

//分析参数

function getPara(paraName){

var reg = new RegExp("[&|?]"+paraName+"=([^&$]*)", "gi")

var a = reg.test(urlPara)

return a ? RegExp.$1 : ""

}

//捕获参数并进行操作

//window.onload = function(){

//var url= getPara("id")//捕获到url参数

//document.getElementById("TextBox1").value = url

//}