文档章节

js String 字符串操作汇总

emperorMan
 emperorMan
发布于 2015/11/26 09:05
字数 1812
阅读 8
收藏 0
点赞 0
评论 0

一、JavaScript 中 slice 、substr 和 substring的区别:

1: String.slice(start,end): 一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符.

2: String.substring(start,end) 这个就有点特别了,它是先从start,end里找出一个较小的值. 然后从字符串的开始位置算起,截取较小值位置和较大值位置之间的

字符串,截取出来的字符串的长度为较大值与较小值之间的差。
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

3: String.substr(start,end) 这个就是我们常用的从指定的位置(start)截取指定长度(end)的字符串.
一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 lenght 个字符。如果没有指定 lenght,那么返回的字符串包含从 start 
到 stringObject 的结尾的字符。
String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。'

二、String对象中常用的方法:

1、charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码
strObj.charCodeAt(index)
说明:
index将被处理字符的从零开始计数的编号。有效值为0到字符串长度减1的数字。
如果指定位置没有字符,将返回NaN。
例如:
var str = "ABC";
str.charCodeAt(0);
结果:65
2、fromCharCode方法从一些Unicode字符串中返回一个字符串。
String.fromCharCode([code1[,code2...]])
说明:
code1,code2...是要转换为字符串的Unicode字符串序列。如果没有参数,结果为空字符串。
例如:
String.fromCharCode(65,66,112);
结果:ABp
3、charAt方法返回指定索引位置处的字符。如果超出有效范围的索引值返回空字符串。
strObj.charAt(index)
说明:
index想得到的字符的基于零的索引。有效值是0与字符串长度减一之间的值。
例如:
var str = "ABC";
str.charAt(1);
结果:B
4、slice方法返回字符串的片段。
strObj.slice(start[,end])
说明:
start下标从0开始的strObj指定部分其实索引。如果start为负,将它作为length+start处理,此处length为字符串的长度。
end小标从0开始的strObj指定部分结束索引。如果end为负,将它作为length+end处理,此处length为字符串的长度。
例如:
012345
var str = "ABCDEF";
str.slice(2,4);
结果:CD
5、substring方法返回位于String对象中指定位置的子字符串。
strObj.substring(start,end)
说明:
start指明子字符串的起始位置,该索引从0开始起算。
end指明子字符串的结束位置,该索引从0开始起算。
substring方法使用start和end两者中的较小值作为子字符串的起始点。如果start或end为NaN或者为负数,那么将其替换为0。
例如:
012345
var str = "ABCDEF";
str.substring(2,4); // 或 str.substring(4,2);
结果:CD
6、substr方法返回一个从指定位置开始的指定长度的子字符串。
strObj.substr(start[,length])
说明:
start所需的子字符串的起始位置。字符串中的第一个字符的索引为0。
length在返回的子字符串中应包括的字符个数。
例如:
012345
var str = "ABCDEF";
str.substr(2,4);
结果:CDEF
7、indexOf方法返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。
strObj.indexOf(substr[,startIndex])
说明:
substr要在String对象中查找的子字符串。
startIndex该整数值指出在String对象内开始查找的索引。如果省略,则从字符串的开始处查找。
例如:
01234567
var str = "ABCDECDF";
str.indexOf("CD",1); // 由1位置从左向右查找 123...
结果:2
8、lastIndexOf方法返回String对象中字符串最后出现的位置。如果没有匹配到子字符串,则返回-1。
strObj.lastIndexOf(substr[,startindex])
说明:
substr要在String对象内查找的子字符串。
startindex该整数值指出在String对象内进行查找的开始索引位置。如果省略,则查找从字符串的末尾开始。
例如:
01234567
var str = "ABCDECDF";
str.lastIndexOf("CD",6); // 由6位置从右向左查找 ...456
结果:5
9、search方法返回与正则表达式查找内容匹配的第一个字符串的位置。
strObj.search(reExp)
说明:
reExp包含正则表达式模式和可用标志的正则表达式对象。
例如:
var str = "ABCDECDF";
str.search("CD"); // 或 str.search(/CD/i);
结果:2
10、concat方法返回字符串值,该值包含了两个或多个提供的字符串的连接。
str.concat([string1[,string2...]])
说明:
string1,string2要和所有其他指定的字符串进行连接的String对象或文字。
例如:
var str = "ABCDEF";
str.concat("ABCDEF","ABC");
结果:ABCDEFABCDEFABC
11、将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
strObj.split([separator[,limit]])
说明:
separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
limit该值用来限制返回数组中的元素个数。
例如:
var str = "AA BB CC DD EE FF";
alert(str.split(" ",3));
结果:
AA,BB,CC
12、toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。
例如:
var str = "ABCabc";
str.toLowerCase();
结果:abcabc
13、toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。
例如:
var str = "ABCabc";
str.toUpperCase();

结果:ABCABC

虽然js String对象已经提供像slice、replace、indexOf和substring等方法,但在实际项目应用中会对其进行扩展,以达到实用、方便目的。注释很详细,废话少说,代码如下:

三、String对象方法扩展:
/**
*字符串-格式化
*/
String.prototype.format = function(){
var args = arguments;//获取函数传递参数数组,以便在replace回调函数内使用
var regex = /\{(\d+)\}/g;//匹配并捕获所有 形如:{数字} 字串
return this.replace(regex,function(m,i){//参数=匹配子串+第几次匹配+匹配字串位置+源字符串
return args[i];
});
}
/**
*字符串-去掉前后空白字符
*/
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
/**
*字符串-去掉前空白字符
*/
String.prototype.ltrim = function(){
return this.replace(/(^\s*)/g, "");
}
/**
*字符串-去掉后空白字符
*/
String.prototype.rtrim = function(){
return this.replace(/(\s*$)/g, "");
}
/**
*字符串-获取以ASCII编码字节数 英文占1字节 中文占2字节
*/
String.prototype.lenASCII=function(){
return this.replace(/[^\x00-\xff]/g,'xx').length;//将所有非\x00-\xff字符换为xx两个字符,再计算字符串
}
/**
*字符串-获取以UNICODE编码字节数 一个字符均占2个字节
*/
String.prototype.lenUNICODE=function(){
return this.length*2;
}
ps:若对js提供类型对象或自定义对象进行方法扩展,应利用原型prototype这个对象属性进行扩展,具体方式以下:

String.prototype.trim=function(){
//...代码略
};
String.prototype.ltrim=function(){
//...代码略
};


本文转载自:http://www.cr173.com/html/19825_1.html

共有 人打赏支持
emperorMan
粉丝 0
博文 6
码字总数 1234
作品 0
南昌
JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒 ⋅ 04/28 ⋅ 0

code-rhythm:写了个vscode扩展,让代码更有快感

项目地址 Github - onvno/code-rhythm 原因 写代码本身是件快乐的事情,但开发中总有各种烦恼。 有时候一个很简单的方法,因为不确定传参的形式,不确定返回形式,不确定具体用法,就得翻墙,...

onvno_ ⋅ 06/07 ⋅ 0

学习Javascript的8张思维导图

分别归类为:  javascript变量  javascript运算符  javascript数组  javascript流程语句  javascript字符串函数  javascript函数基础  javascript基础DOM操作  javascript正则表达式...

thinkyoung ⋅ 2014/09/23 ⋅ 0

javaFX实例1-webView实现简单浏览器

webView: 是一个管理webEngine和显示它中间内容的节点。这个对象只能从fx的线程中创建。 webEngine: 是一个管理网页的不可见控件,它可以加载网页,创建文档模型,运行javascript,加载必要...

xiaomin0322 ⋅ 06/13 ⋅ 0

憧憬Licoy/watchdog-framework

介绍 基于SpringBoot+Shiro+Mybatis+Mybatis-Plus+HikariCP+Redis+Vue+iView等开发的轻量级管理系统快速开发脚手架,拥有角色、用户、资源管理、同时数据更新时关联的用户相应的权限也会实时...

憧憬Licoy ⋅ 04/30 ⋅ 0

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象。 但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用操作符获取对象的类型,它总是返回一个字符...

ygqygq2 ⋅ 06/11 ⋅ 0

怪异的JavaScript系列(三)

译者按: JavaScript有很多坑,经常一不小心就要写bug。 原文: What the f*ck JavaScript? 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学...

Fundebug ⋅ 04/26 ⋅ 0

JavaScript入门 Day1

课程介绍 编程语言介绍(了解) JavaScript简介(了解) JavaScript入门 运算符(掌握) JavaScript基本语法(掌握) 位运算符(了解) 1.编程语言 1.1.什么是编程语言 编程语言(programmi...

何老师编程 ⋅ 06/02 ⋅ 0

WebAssembly 时代,Rust 也想成为 Web 语言

目前 Mozilla 正在基于 WebAssembly 可移植代码格式研发 JavaScript 和 Rust 之间的桥梁——wasm-bindgen,意义是提高 JavaScript 和 Rust 之间的互操作性。Mozilla 这么做是想让 Rust 成为类...

开源中国 ⋅ 04/10 ⋅ 0

改进 JavaScript 和 Rust 的互操作性:深入认识 wasm-bindgen 组件

最近我们已经见识了WebAssembly如何快速编译、加速JS库以及生成更小的二进制格式。我们甚至为Rust和JavaScript社区以及其他Web编程语言之间的更好的互操作性制定了高级规划。正如前面一篇文章...

oschina ⋅ 04/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 46分钟前 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 54分钟前 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部