欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js字符转换

程序员文章站 2022-03-31 17:00:21
...
<script>
/*
		如果把对象用在数值运算环境中,则对象会被自动转换成数字,如果转换失败,则返回值为NaN。
		当数组被用在数值运算环境中,数组将根据包含的元素来决定转换的值。如果数组是空数组,则被转换为0.如果转换的数组仅
	包含一个数字元素,则被转换成该数字数值,如果数组中包含多个元素,或者仅包含一个非数字的元素,则返回NaN。
		当对象用于字符串环境变量,JavaScript能够调用toString()方法把对象转换为字符串再进行相关计算。
*/
</script>
<script>
/*
		replace()方法可以实现字符串替换操作,该方法包含两个参数,第一个参数表示执行匹配的正则表达式,也可以传递
	字符串,第二个参数表示准备替换的子字符串。
*/
var s = "index.html";
var b = s.replace(/html/, "htm");
document.write("</br>" + b + "</br>");

/*
		replace()中约定了一个特殊的字符'$',如果则个美元符号附加了一个序号,就表示引用正则表达式中匹配的子表达式存储的字符串。
*/
var s = "javascript";
//再这里面$1,$2分别表示引用正则表达式匹配到的字符串 script 和 java
var  b = s.replace(/(java)(script)/, "$2-$1");
document.write("</br>" + b + "</br>");//script-java
var c = s.replace(/(script)(java)/, "$1-$2");
document.write(c + "</br>");//javascript

/*
	$1、$2.....$99 表示与中则表达式中的第1~99个子表达式像匹配的文本
	$& 表示与正则表达式相匹配的子字符串
	$` 表示位于匹配子字符串左侧的文本
	$' 表示位于匹配子字符串右侧的文本
	$$ 表示美元符
*/
var s = "javascript";
//.*表示完全匹配,也就是 s 的所有内容,所以$&表示的就是s
var b = s.replace(/.*/, "$&-$&");
document.write("</br>" + b +"</br>");//javascript-javascript

var s = "javascript";
//$& 表示匹配的字符串,使用script匹配到的字符串是javascript
var b = s.replace(/script/, "$& != $`");
document.write("</br>" + b + "</b>");//javascript != java

var s = "javascript";
var b = s.replace(/java/, "$&$' is ");
document.write("</br>" + b + "</br>"); //javascript is script

//replace()方法的第二个参数可以使用函数
var s = 'script language = "javascript" type = "text/javascript"';
var f = function($1){
		return $1.substring(0, 1).toUpperCase() + $1.substring(1);
	}
var a = s.replace(/(\b\w+\b)/g, f);
document.write("</br>" + a + "</br>");//Script Language = "Javascript" Type = "Text/Javascript"

var f = function($1, $2, $3){
		return $2.toUpperCase() + $3;
	}
var a = s.replace(/\b(\w)(\w*)\b/g, f);
document.write(a + "</br>");//Script Language = "Javascript" Type = "Text/Javascript"

var f = function(){
		return arguments[1].toUpperCase() + arguments[2];
	}
var a = s.replace(/\b(\w)(\w*)\b/g, f);
document.write(a + "</br>");//Script Language = "Javascript" Type = "Text/Javascript"

//测试arguments
var s = 'script language = "javascript" type = "text/javascript"';
var f = function(){
		for (var i = 0; i < arguments.length; i++){
			document.write("第" + (i + 1) + "个参数的值:" + arguments[i] + "</br>");	
		}
	}
s.replace(/\b(\w)(\w*)\b/g, f);
/*
第1个参数的值:script
第2个参数的值:s
第3个参数的值:cript
第4个参数的值:0
第5个参数的值:script language = "javascript" type = "text/javascript"
第1个参数的值:language
第2个参数的值:l
第3个参数的值:anguage
第4个参数的值:7
第5个参数的值:script language = "javascript" type = "text/javascript"
第1个参数的值:javascript
第2个参数的值:j
第3个参数的值:avascript
第4个参数的值:19
第5个参数的值:script language = "javascript" type = "text/javascript"
第1个参数的值:type
第2个参数的值:t
第3个参数的值:ype
第4个参数的值:31
第5个参数的值:script language = "javascript" type = "text/javascript"
第1个参数的值:text
第2个参数的值:t
第3个参数的值:ext
第4个参数的值:39
第5个参数的值:script language = "javascript" type = "text/javascript"
第1个参数的值:javascript
第2个参数的值:j
第3个参数的值:avascript
第4个参数的值:44
第5个参数的值:script language = "javascript" type = "text/javascript"
*/
</script>
<script>
//提取字符串中的分数,计算出平均分
var s = "张三56分,李四74分,王五92分,赵六84分";
//求出平均数,将字符串中的分数存储到一个数组中
var a = s.match(/\d+/g),sum=0;
for (var i = 0; i < a.length; i++){
	sum += parseFloat(a[i]);		
}	
var avg = sum / a.length;
//重新处理字符串,对所得分数进行评价
function f(){
	var n = parseFloat(arguments[1]);
	return n + "分" + "(" + ((n > avg) ? ("超出平均分" + (n - avg)) : ("低于平均分" + (avg - n))) + "分)";	
}

var s1 = s.replace(/(\d+)分/g, f);
document.write(s1);
</script>
相关标签: js 字符转换