Created
August 10, 2014 15:16
-
-
Save jikeytang/85c1fd4738e31adffc7e to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140811-题目1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
如何用非正则的方式找出一个字符串中出现的数字序列。 | |
比如:var str = 'asdfasdf213sdd123aaa123aad123fdssaa'; -> arr = [213, 123, 123, 123] | |
PS: | |
1. 回复时注意加上下面这句话,才会有语法高亮或格式缩进。 | |
```javascript | |
// you code | |
``` | |
2. 粘贴代码时请使用shift+tab,缩进前面的空白。 |
replace5
commented
Aug 11, 2014
function fd(s){
var i=0, j=0, r=[],k=0,c=true,vbs;
for(var j=0;j<s.length;j++){
var vbs= s.charCodeAt(j);
if(vbs>=48&&vbs<=57){
if(!r[i]){
r[i]= s.charAt(j).toString();
}else{
r[i]+= s.charAt(j).toString();
}
}else if(c){
i++;
c=false;
}
}
return r;
}
console.log(fd("dsdsdx2232xsds2222x21d"));
//定义任何包含数字的字符串
var str = '73asdfasdf1545asdf321asdf2asdf3';
//调用方法
test(str);
function test(str){
//取得数字在字符串中的位置
var num = [];
for(var i=str.length; i>=0; i--){
if(parseInt(str.charAt(i))){
num.push(i);
}
}
//按从小到大排序
num.sort(function(a,b){
return a > b;
});
/**
* 以下代码是渣渣 望高手指正
*/
//为了方便运算
//往数字添加一位数值(比原数据最后一值要大)
num.push(num[num-1]+1);
//取得连续位数的长度,方便一会截取位数
var temp = num[0],
iNow = 1,
arr = [];
for(var j=1; j<num.length; j++){
if(num[j] - temp === 1){
iNow++;
} else {
arr.push(iNow);
iNow = 1;
}
temp = num[j];
}
//替换位数为真实值
for(var l=0; l<num.length; l++){
num[l]=str.charAt(num[l]);
}
//得到最后结果
var arr2 = [];
for(var k=0; k<arr.length; k++){
arr2.push(num.splice(0, arr[k]));
}
console.log(arr2);
}
// 使用正则
var str = 'asdfasdf213sdd123aaa123aad123fdssaa';
var re = /\d+/g;
console.log( str.match(re));
// 不适用正则
var len = str.length ;
var arr = [];
var temp = '';
for(var i = 0 ; i < len; i ++){
if( str.charAt(i) < 10 ){
temp += str.charAt(i);
}else{
if( temp != '' ){
arr.push(temp);
}
temp = '';
}
}
console.log( arr )
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment