第二个问题:
在msdn看到对split的描述如下[JScript]
public function Split(
separator : Char[]
) : String[];然后它举例是
[JScript]
import System;public class SplitTest {
public static function Main() : void { var words : String = "this is a list of words, with: a bit of punctuation.";
var separators : char[] = [' ', ',', '.', ':'];
var split : String [] = words.Split(separators); for (var i : int in split) {
var s : String = split[i];
if (s.Trim() != "")
Console.WriteLine(s);
}
}
}
SplitTest.Main();
这肯定是在页面上没法跑的,我就于是我就改成function testSplit() {
var words = "this is a list of words, with: a bit of punctuation.";
var separators = [' ', ',', '.', ':'];
var splitStr = words.split(separators ); for (i in splitStr) {
var s = splitStr[i];
alert(s);
}
}可是是跑不了,说语法错误??
而且我看拉实际例子,split()里面就放一个字符串
我改成放一个确实就好拉function testSplit() {
var words = "this is a list of words, with: a bit of punctuation.";
var separators = [' ', ',', '.', ':'];
var splitStr = words.split(":"); for (i in splitStr) {
var s = splitStr[i];
alert(s);
}
}
,其实我就只是改成拉split(":"),放一个字符串
但是我要多个字符串来进行风格的时候呢??用正则表达式吗?
例如上面那个范例功能该如何实现呢,请大虾指教阿
在msdn看到对split的描述如下[JScript]
public function Split(
separator : Char[]
) : String[];然后它举例是
[JScript]
import System;public class SplitTest {
public static function Main() : void { var words : String = "this is a list of words, with: a bit of punctuation.";
var separators : char[] = [' ', ',', '.', ':'];
var split : String [] = words.Split(separators); for (var i : int in split) {
var s : String = split[i];
if (s.Trim() != "")
Console.WriteLine(s);
}
}
}
SplitTest.Main();
这肯定是在页面上没法跑的,我就于是我就改成function testSplit() {
var words = "this is a list of words, with: a bit of punctuation.";
var separators = [' ', ',', '.', ':'];
var splitStr = words.split(separators ); for (i in splitStr) {
var s = splitStr[i];
alert(s);
}
}可是是跑不了,说语法错误??
而且我看拉实际例子,split()里面就放一个字符串
我改成放一个确实就好拉function testSplit() {
var words = "this is a list of words, with: a bit of punctuation.";
var separators = [' ', ',', '.', ':'];
var splitStr = words.split(":"); for (i in splitStr) {
var s = splitStr[i];
alert(s);
}
}
,其实我就只是改成拉split(":"),放一个字符串
但是我要多个字符串来进行风格的时候呢??用正则表达式吗?
例如上面那个范例功能该如何实现呢,请大虾指教阿
var orignalUserDNs= "aa:bb:cc:dd:ee:";
var userDNs= "ff:dd:bb:kk:aa"
var removeUserDNs = orignalUserDNs.replace(eval('/'+userDNs.replace(/:/g, "|")+'/g'), '');
removeUserDNs = removeUserDNs.replace(/:+/g, ':').replace(/^:|:$/g, '');
alert(removeUserDNs);
</script>
用正则表达式的话,我很难想出来。思路最重要,我不想当coder,自己写啊
var userDNs= "ff:dd:bb:kk:aa";
var r = new RegExp(":("+ userDNs.replace(/:/g, "|") +")(?=$|:)", "g");
var s = (":"+ orignalUserDNs).replace(r, "").replace(/^:/, "");
alert(s);唠叨的代码不够严谨 比如 var orignalUserDNs= "aa:bbm:cc:jkdd:ee";
真乃牛人也我费拉不少劲才看懂下面我分解一下,反馈学习成果
var orignalUserDNs= "aa:bb:cc:dd:ee:";
var userDNs= "ff:dd:bb:kk:aa";
var temp1=userDNs.replace(/:/g, "|")
//这时temp1="ff|dd|bb|kk|aa"
alert(temp1);
//这时利用eval的特性,如果字符串是表达式形式,就执行这个表达式,这个其实shell里面也是有的
// 其实我开始就卡在这里,都忘拉有eval拉
//同时又利用拉"|"的特性,匹配几个字符串中任何一个.注意要有"g",才能global match,要不就只在匹配第一个后就停止拉
var removeUserDNs = orignalUserDNs.replace(eval("/"+temp+"/g"),"");
//var removeUserDNs = orignalUserDNs.replace(eval('/'+userDNs.replace(/:/g, "|")+'/g'), '');
alert(removeUserDNs);
//将removeUserDNs中的一个或多个":"全部(注意又要有g)都转化为一个":"
var removeUserDNs=removeUserDNs.replace(/:+/g,":");
alert(removeUserDNs);
//去掉removeUserDNs中的位于行首与行尾的":",这个大家应该熟悉,因为去掉首尾空格一个常用功能
var removeUserDNs=removeUserDNs..replace(/^:|:$/g, "");
//removeUserDNs = removeUserDNs.replace(/:+/g,":").replace(/^:|:$/g, "");
alert(removeUserDNs);总而言之,实在是佩服之至
但是还是一个小问题,在javaScript中,""与''是相同的吗,我现在全部用"",也没出错喔?大虾能指教一下吗??
关于code,哈哈,思想确实重要,但是语言本身的facility也应该熟悉吧,要不C++ primer宏宏巨猪
不都是一堆堆的概念把,所以中庸之道乃是至道
刚刚佩服完一个,就????艾,小弟自己我为何这么菜
不愧钻石极的大虾
小弟实在是物体头地可是meizz(梅花雪)大虾
var r = new RegExp(":("+ userDNs.replace(/:/g, "|") +")(?=$|:)", "g");
这句实在是不懂阿
能否详解一把阿
var userDNs= "ff:dd:bb:kk:aa";
var r = new RegExp(":("+ userDNs.replace(/:/g, "|") +")(?=$|:)", "g");
alert(r.source); //这是组织好的正则表达式,你自己看看
var s = (":"+ orignalUserDNs).replace(r, "").replace(/^:/, "");
alert(s);原理与唠叨的一样!
?= 是正向预查,判断需求测试的字符是否存在。对浏览器的版本要求有点高(IE5.5+)