js字符串,数组经典笔试编程题
注意:String及其包装对象是不可变类型,因此不能改变它本⾝,所以String的所有⽅法都是返回⼀个新的字符串,⽽不会改变原来的字符串
字符串,数组经典笔试编程题:
将字符串变成驼峰法
function tuofengfa (name){
var arr = name.split('');//将整个字符串拆分成数组
//判断⼀下第⼀个是不是—
if (arr.indexOf('-')==0){
arr.splice(0,1);
}
//处理剩余的’-‘
for (var i =0 ;i< arr.length;i++){
if (arr[i]=='-'){
arr.splice(i,1);//删除这个"-",然后将下⼀个字母的⾸字母变成⼤写的
arr[i] = arr[i].toUpperCase();
}
}
return arr.join('');
}
统计字符串中每个字符出现的频率
function countLetterTimes(str) {
js正则表达式判断数字var length = str.length;
var res = {};
for (var i =0 ;i<length;i++){
if (str.charAt(i) in res){//如果第i个位置的字符在res已经有了,就加1,否为出现频率为1
res[str.charAt(i)]++;
} else {
res[str.charAt(i)]=1;
}
}
return res;
}
数组去重
function oSort(arr)
{
var newArr=[];
for(var i=0;i<arr.length;i++) {
if(newArr.indexOf(arr[i])==-1) {
newArr.push(arr[i]);
}
}
return newArr;
}
字符串连续重复字符去重
function deleteCF(arr) {
let resArr = arr.split("");
let length = resArr.length;
for (let i = 0; i < length; i++) {
if (resArr[i] != resArr[i+1]) {
continue;
} else {
delete resArr[i];
}
}
for (let j = 0; j < length; j++) {
if (resArr[j] != undefined) {
console.log(resArr[j]);
}
}
}
let arr1 ="aaabbbcbde";
deleteCF(arr1);//输出abcbde
按所给的时间格式输出指定的时间
function formaDate(date,format) {
var year = FullYear(),
month = Month()+1,
day = Date(),
hour = Hours(),
minute = Minutes(),
second = Seconds(),
day = Day(),
week =['⽇','⼀','⼆','三','四','五','六'];
function pad(n){
return n < 10 ? '0' + +n : n;//如果n⼩于10,则需要在n前⾯补位0 }
place(/yyyy/,year)
.replace(/yy/,pad(year % 100))
.replace(/MM/, pad(month))
.
replace(/M/, month)
.replace(/dd/, pad(date))
.replace(/d/, date)
.replace(/HH/, pad(hour))
.replace(/H/, hour)
.replace(/hh/, pad(hour % 12))
.replace(/h/, hour % 12)
.replace(/mm/, pad(minute))
.replace(/m/, minute)
.replace(/ss/, pad(second))
.replace(/s/, second)
.
replace(/w/, week[day]);
}
判断输⼊的是否是正确的邮箱格式
function isAvailableEmail(sEmail) {
var reg = /^[0-9-a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}$/;
st(sEmail)){
return true;
}else{
return false;
}
}
将浮点数转换成三位⼀分割的数,如 386485473.88 转换为 386,485,473.88(千位分割符)
//⽅法1:正则表达式
function separator(num) {
if (!num){//如果num为0,则输出0.00
return 0.00;
}
//parseFloat() 函数可解析⼀个字符串,并返回⼀个浮点数
//toFixed() ⽅法可把 Number 四舍五⼊为指定⼩数位数的数字
let str = parseFloat(num).toFixed(2);
//"?="这两个字符⼀起是查的意思,如 ?<=\s*)\d+ 匹配的是 "abc 123abc""abc123abc"中的"123"
//匹配的是:前⾯有"重复0次或多个空格"后⾯紧跟的是数字的数字部分;
return str && String().replace(/(\d)(?=(\d{3})+\.)/g,function ($0,$1) {
return $1+ ",";
})
}
separator(386485473.88 );
//⽅法2:⾮正则表达式
(386485473.88).toLocaleString('en-US');
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论