js让<li>以倒叙排序?

JavaScript084

js让<li>以倒叙排序?,第1张

<div class="a"><ul class="b"><li>1</li><li>2</li><li>3</li></ul></div>

<script>

window.onload=function(){

var ul=document.getElementsByClassName("b")[0]

var lis=ul.getElementsByTagName("li")

for(var i=lis.length-1i>=0i--){

ul.appendChild(lis[i])

}

}

</script>

示例代码如下:

var strM = "javascript is a good script language" //在此我想将字母a替换成字母A alert(strM.replace("a","A")) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

它只替换了首字母。但如果加上正则表达式结果就不一样了!replace()支持正则表达式,它可以按照正则表达式的规则匹配字符或字符串,然后给予替换!

注意:被替换的部分不用加双引号.

var strM = "javascript is a good script language" //在此我想将字母a替换成字母A alert(strM.replace(/a/,"A")) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

这样还是只替换了第一个字母a。

var strM = "javascript is a good script language" //在此将字母a全部替换成字母A alert(strM.replace(/a/g,"A")) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

由上可知,当正则表达式有"g"标志时,代表将处理整个字符串.

var strM = "javascript is a good script language" alert(strM.replace(/(javascript)\s*(is)/g,"$1 $2 fun. it $2")) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

先看看简单例子:将所有单词首字母换成大写。

var strM = "javascript is a good script language" function change(word) { return word.indexOf(0).toUpperCase()+word.substring(1) } alert(strM.replace(/\b\w+\b/g,change)) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。

有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!

最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。

var strM = "javascript is a good script language" function change(word) { var result = word.match(/(\w)/g) if ( result ) { var str = "" for ( var i=result.length-1i>=0i-- ) { str += result } return str } else { return "null" } } alert(strM.replace(/\b(\w)+\b/g,change)) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

首先了解JavaScript中字符串和数组的区别:

①字符串是不可变的,数组是可变的。字符串不可变是指字符串的成员函数不会改变其原始值,而是创建并返回一个新的字符串。而数组的成员函数都是在其原始值上进行操作。

②数组有一个字符串没有的可变更成员函数reserve()。

方法一:先将字符串转化为数组,待处理完后再将结果转化回字符串:

split()方法将一个字符串拆成字符并返回一个数组

reverse()方法使数组反转

join()方法将数组中的所有元素边接成一个字符串

var a="foo"

var b=a.split("")//转化为字符串数组

            .reverse()//进行反转

            .join("")//数组中的字符拼接回字符串

方法二:把字符串中的字符倒序存入数组,再将数组转化为字符串:

var newString = []

for(var i = a.length-1,j = 0i >= 0i --,j ++){

    newString[j] = a[i]

}

newString.join()