- 浏览: 47195 次
- 性别:
- 来自: 北京
文章分类
最新评论
javascript常用属性方法总结
String类型(对象中的方法可以在基本的字符串之中访问到)
属性:str.length
方法:(以下方法对原始字符串都没有影响)
1. 字符方法
str.charAt(),str.charCodeAt():都接收一个参数,即基于0的字符位置。
charAt方法以单字符字符串的形式返回给定位置的那个字符;
charCodeAt返回的是字符串编码;
ECMAScript5还定义了另外一个访问字符串的方法,在支持的浏览器中,可以用方括号加数字索引来访问字符串中的特定字符,例如:str[1] //"e"
2. 字符串的操作
str.concat();用于将一个字符串或多个字符串拼接起来,返回的得到的新字符串。但实践中使用的更多的还是"+"
slice()、substr()、substring():接收一个或者两个参数,第一个参数制定子字符串的开始位置,而第二个参数(在指定的情况下)表示子字符串到哪里结束。具体来说,slice()和substring()在第二个参数指定的子子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回字符串的个数.如果没有给这些方法传递第二个参数,则字符串的长度作为结束位置。注意:如果是负值时,slice()方法会将传入的负值与字符串的长度相加,substring()方法会把所有负值参数都转换为0,substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0.
3. 字符串位置方法
indexof() lastIndexOf(),这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到,则返回-1)。
indexof()方法从字符串的开头向后搜索子字符串;
lastIndexOf()方法是从字符串的末尾向前搜索子字符串。可接受第二个参数,表示从字符串中的那个位置开始搜索。
4. trim()方法(ECMAScript5中定义)
5. 字符串大小转换方法
toLowerCase()、 toLocaleLowerCase()、 toUpperCase() 、toLocaleUpperCase()
6. localeCompare()
比较两个字符串,并返回下列中的一个值:-1 0 1( 在字母表中的顺序)
7. fromCharCode()
静态方法,接收字符编码,转换成字符串。
<script type="text/javascript"> //var str = Hello World; var str = new String("Hello World"); console.log(str.length); //字符方法 console.log(str.charAt(1)); console.log(str.charCodeAt(1)); console.log(str.concat("world")); //字符串的操作 console.log("str.slice(3):"+str.slice(3)); console.log("str.substring(3):"+str.substring(3)); console.log("str.substr(3):"+str.substr(3)); console.log("str.slice(3,7):"+str.slice(3,7)); console.log("str.substring(3,7):"+str.substring(3,7)); console.log("str.substr(3,7):"+str.substr(3,7)); console.log("str.slice(-3):"+str.slice(-3)); console.log("str.substring(-3):"+str.substring(-3)); console.log("str.substr(-3):"+str.substr(-3)); console.log("str.slice(3,-4):"+str.slice(3,-4)); console.log("str.substring(3,-4):"+str.substring(3,-4));//会将较小的数作为开始位置,将较大的数作为结束位置 console.log("str.substr(3,-4):"+str.substr(3,-4)); //字符串的位置 console.log(str.indexOf("o")); console.log(str.lastIndexOf("o")); console.log(str.indexOf("o",6)); console.log(str.lastIndexOf("o",6)); console.log(" str ".trim()); //字符串大小写的转换 console.log(str.toLocaleLowerCase()); console.log(str.toLowerCase()); console.log(str.toLocaleUpperCase()); console.log(str.toUpperCase()); //字符串模式的匹配方法 console.log(str.localeCompare("brick")); console.log(str.localeCompare("Hello World")); console.log(str.localeCompare("Hello World ")); //静态方法 console.log(String.fromCharCode(104,101,108,111)); </script>
运行结果:
8.字符串的模式匹配方法
match() search() replace()split()
match方法
stringObj.match(rgExp)
参数 stringObj :必选项。对其进行查找的 String 对象或字符串文字。
rgExp :必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。
其余说明与exec(正则表达式的方法)一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而match不用循环,但所有匹配中不会包含子匹配项。exec需要循环,但可以包含子匹配项。
<script type="text/javascript"> var r, regExpG; // 声明变量。 var s = "The rrain in Spain falls mainly in the plain"; regExp= /(\w+)in/i; // 创建正则表达式模式。 regExpG = /(\w+)in/ig; // 创建正则表达式模式。 function MatchDemo(){ console.log("-----------match-------------"); r0 = s.match(regExp); // 尝试去匹配搜索字符串。 r = s.match(regExpG); // 尝试去匹配搜索字符串。 document.write(r0+ "<br/>"); document.write(r+ "<br/>");// 返回的数组包含了所有 "ain" 出现的四个匹配,r[0]、r[1]、r[2]、r[3]。 // 但没有子匹配项a。 for(key in r0){ document.write(key + "=>" + r0[key] + "<br/>"); } for(key in r){ document.write(key + "=>" + r[key] + "<br/>"); } } MatchDemo(); </script>
运行结果: IE: 运行结果:(FF,Safari,Chrome)
<script type="text/javascript"> var r, regExpG; // 声明变量。 var s = "The rrain in Spain falls mainly in the plain"; regExp= /(\w+)in/i; // 创建正则表达式模式。 regExpG = /(\w+)in/ig; // 创建正则表达式模式。 function execDemo(){ document.write("-----------exec-------------"+ "<br/>"); r0 = regExp.exec(s); // 尝试去匹配搜索字符串。 r = regExpG.exec(s); // 尝试去匹配搜索字符串。 document.write(r0+ "<br/>"); document.write(r+ "<br/>"); for(key in r0){ document.write(key + "=>" + r0[key] + "<br/>"); } for(key in r){ document.write(key + "=>" + r[key] + "<br/>"); } document.write("--------while------------" + "<br/>"); while((arr = regExpG.exec(s)) !=null){ document.write(arr+ "<br/>"); for(key in r0){ document.write(key + "=>" + r0[key] + "<br/>"); } } } execDemo(); </script>
运行结果: IE: 运行结果:(FF,Safari,Chrome)
说明:根据手册,exec只返回匹配结果的第一个值,比如上例如果不用while循环,将只返回'rrain',无论re表达式用不用全局标记g。但是如果为正则表达式设置了全局标记g,exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。利用这个特点可以反复调用exec遍历所有匹配,等价于match具有g标志。当然,如果正则表达式忘记用g,而又用循环(比如:while、for等),exec将每次都循环第一个,造成死循环。exec的输出将包含子匹配项。
exec如果不循环有g无g时的输出相同。
match有g和无g时输出不同
当包含分组的正则表达式进行过test,match,search这些方法之后,每个分组都被放在一个特殊的地方以备将来使用,这些存储是分组中的特殊值,我们称之为反向引用
- var re = /(A?(B?(C?)))/;
- /*上面的正则表达式将依次产生三个分组
- (A?(B?(C?))) 最外面的
- (B?(C?))
- (C?)*/
- str = "ABC";
- re.test(str);//反向引用被存储在RegExp对象的静态属性$1—$9中
- alert(RegExp.$1+"\n"+RegExp.$2+"\n"+RegExp.$3);
- //反向引用也可以在正则表达式中使用\1 ,\2...这类的形式使用
- re = /\d+(\D)\d+\1\d+/;
- str = "2008-1-1";
- alert(re.test(str));//true
- str = "2008-4_3";
- alert(re.test(str));//false
使用反向引用可以要求字符串中某几个位置上的字符必须相同.另外,在replace这类方法中可用特殊字符序列来表示反向引用
- re = /(\d+)\s(\d+)/;
- str = "1234 5678";
- alert(str.replace(re,"$2 $1"));//在这个里面$1表示第一个分组1234,$2则表示5678
search 方法:返回与正则表达式查找内容匹配的第一个子字符串的位置(偏移位)。 stringObj.search(rgExp)
参数
stringObj :必选项。要在其上进行查找的 String 对象或字符串文字。
rgExp :必选项。包含正则表达式模式和可用标志的正则表达式对象。
说明:如果找到则返回子字符至开始处的偏移位,否则返回-1。
- function SearchDemo(){
- var r, re; // 声明变量。
- var s = "The rain in Spain falls mainly in the plain.";
- re = /falls/i; // 创建正则表达式模式。
- re2 = /tom/i;
- r = s.search(re); // 查找字符串。
- r2 = s.search(re2);
- return("r:" + r + ";r2:" + r2);
- }
- document.write(SearchDemo());
输出:r:18;r2:-1
replace方法:
stringObj.replace(rgExp, replacement ) 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。结果为将每一匹配的子字符串替换为函数调用的相应返回值的字符串值。
<script type="text/javascript"> Function.prototype.method = function(name,func){ this.prototype[name] = func; } String.method('de',function(){ var entity={ quot:'""', lt:'<', gt:'>' } return function(){ return this.replace(/&([^&;]+)([1]+)/g, function(a,b,c,d,e){ console.log("a:"+a); console.log("b:"+b); console.log("c:"+c); console.log("d:"+d); console.log("e:"+e); var r = entity[b]; return typeof r ==='string'?r:a; }); }; }()); console.log('<1"1>1;'.de()); </script>运行结果:
当包含分组的正则表达式进行过test,match,search,exec这些方法之后,每个分组都被放在一个特殊的地方以备将来使用,这些存储是分组中的特殊值,我们称之为反向引用
var re = /(A?(B?(C?)))/; /*上面的正则表达式将依次产生三个分组 (A?(B?(C?))) 最外面的 (B?(C?)) (C?)*/ str = "ABC"; re.test(str);//反向引用被存储在RegExp对象的静态属性$1—$9中 alert(RegExp.$1+"\n"+RegExp.$2+"\n"+RegExp.$3); //反向引用也可以在正则表达式中使用\1 ,\2...这类的形式使用 re = /\d+(\D)\d+\1\d+/; str = "2008-1-1"; alert(re.test(str));//true str = "2008-4_3"; alert(re.test(str));//false
使用反向引用可以要求字符串中某几个位置上的字符必须相同.另外,在replace这类方法中可用特殊字符序列来表示反向引用
re = /(\d+)\s(\d+)/; str = "1234 5678"; alert(str.replace(re,"$2 $1"));//在这个里面$1表示第一个分组1234,$2则表示5678
split方法用于把一个字符串分割成字符串数组。
语法
stringObject.split(separator,howmany)
参数 |
描述 |
separator |
必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 |
howmany |
可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
返回值
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
<script type="text/javascript"> var r, regExpG; // 声明变量。 var s = "The rrain in Spain falls mainly in the plain"; regExp= /(\w+)in/i; // 创建正则表达式模式。 regExpG = /(\w+)in/ig; // 创建正则表达式模式。 function SplitDemo(){ r1 = s.split(regExp); r1 = s.split(regExp); r2 = s.split(regExpG); document.write(r1+ "<br/>"); //["The ", "rra", " in ", "Spa", " falls ", "ma", "ly in the ", "pla", ""] document.write(r2+ "<br/>"); //["The ", "rra", " in ", "Spa", " falls ", "ma", "ly in the ", "pla", ""] } SplitDemo(); var colorText = "red,blue,green,yellow"; var colors1 = colorText.split(","); var colors2 = colorText.split(",",2); var colors3 = colorText.split(/[^\,]+/);//此处……号表示非,因为在【】中 document.write(colors1+"<br/>");//["red","blue","green","yellow"] document.write(colors2+"<br/>");//["red","blue"] document.write(colors3+"<br/>");//["",",","",",",",""] </script>
发表评论
-
es6
2016-07-25 17:11 01.export default 不用关系模块输出了什么 ... -
immutable
2016-07-21 17:23 0作者:张克军链接:ht ... -
react
2016-07-08 16:02 0中文文档:http://reactjs.cn/react/ ... -
redux
2016-07-07 15:30 0redux例子counter总结: action:描述发 ... -
angular遇到的问题
2016-03-17 18:53 0Form Validation and fields add ... -
http2
2015-12-22 13:10 0http2资料: http://http2-explai ... -
iconfont的蜕化操作
2015-11-09 16:27 0转自:http://www.cnblogs. ... -
flux
2015-10-19 14:03 0转自:http://www.csdn.net/articl ... -
setTransform
2015-10-15 17:30 0转自:http://book.51cto.co ... -
遇到的问题
2014-12-19 14:37 0http://stackoverflow.com/questi ... -
node安装(windows)
2014-09-14 10:43 0Windows平台下的node.js安装 直接去node ... -
jQuery.Callbacks之demo
2014-08-30 10:56 0jQuery.Callbacks是jquery在1.7版本 ... -
使用proxy改变js上下文
2014-03-27 21:48 0<body> <div id=& ... -
num
2014-01-14 17:31 0$("input[type=text][imemo ... -
js插件模板
2014-01-05 12:36 0(function(){ function Guid ... -
jquery中的this
2013-06-26 21:42 0jQuery.fn.test2= function() ... -
SeaJS与RequireJS最大的区别
2013-06-21 08:43 0SeaJS与RequireJS最大的区别 转自:h ... -
快速排序
2013-06-16 17:35 0快速排序: 设要排序的数组是A[0]……A[N-1],首先 ... -
autocomplete/suggest
2013-06-07 15:05 0<!DOCTYPE html PUBLIC & ... -
typeof
2013-06-06 08:35 0console.log(typeof ([])) //obj ...
相关推荐
总结,虽然`mysql_escape_string()`曾是防止SQL注入的一种手段,但鉴于其局限性和已弃用的状态,现代开发应转向使用预处理语句和参数绑定来保证数据安全。同时,前端也需要相应的安全措施,如使用合适的编码函数来...
总结,`applet`和`String`类在Java编程中各有其特定的应用场景。虽然Applet在现代Web开发中已不常用,但理解它的基本原理可以帮助我们了解Java的历史和发展。而`String`类则是日常编程中不可或缺的部分,掌握其用法...
总结来说,JavaScript提供了非常简洁的API来实现数组与字符串之间的转换。Array的toString方法可以方便地将数组元素转换为以逗号分隔的字符串;而String的split方法则允许我们以指定的分隔符将字符串分割成数组元素...
总结来说,"SignalR演示_JavaScript_C#_下载.zip"中的AspNetCore.SignalRDemo-master项目是一个教你如何使用SignalR、JavaScript和C#进行实时通信的示例。通过学习这个项目,你可以了解如何在ASP.NET Core环境中搭建...
一般情况下,使用小写字母是常见的做法,但在某些特定场景下,也会出现大小写混合的情况,如事件处理程序 `onClick` 或者方法 `Date.getFullYear()`。 ##### 2.2 注释 在编程中,合理地使用注释是非常重要的。注释...
### JavaScript中字符串相关常用的使用方法总结 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,被大量应用于Web开发之中。其中,字符串处理是非常重要的一个方面,涉及到数据的读取、修改、拼接等操作。...
在 JavaScript 中,数据类型包括字符串(string)、数值型(number)、布尔型(boolean)、null、undefined 和对象(object)。其中数组(array)属于对象,判断数据类型需要使用 typeof() 函数。 变量 变量的命名...
总结来说,这个压缩包“JavaScript-code_sample”很可能是针对JavaScript初学者或开发者的一个学习资源,包含了从基础到高级的JavaScript编程知识,包括但不限于数据类型、控制流、函数、对象、DOM操作、事件处理、...
以上总结了“JavaScript基础练习_day13”文档中提到的重要知识点,涵盖了数据类型、变量赋值、函数、对象方法以及异步编程等核心概念。这些内容对于初学者理解JavaScript的基本原理和编程模式非常有帮助。
JavaScript有六种基本数据类型:`Number`, `String`, `Boolean`, `Null`, `Undefined`, 和 `Symbol`。此外,还有对象(Object)作为复杂数据类型的代表,可以包含属性和方法。 #### 3. 函数 函数是JavaScript中重要...
总结来说,这篇博客探讨了如何通过扩展JavaScript的String.prototype来增加自定义方法,例如`reverseWords`、`isPalindrome`和`repeatTimes`,这些都是非常实用的功能。通过这种方式,开发者可以根据项目的具体需求...
- **知识点**: `String.prototype.repeat()` 方法用于创建一个新字符串,该字符串是由原字符串重复指定次数组成。 - **示例**: - `"na".repeat(1)` 的结果是 `"na"`,即字符串 `"na"` 重复了 1 次。 - `"na"....
总结来说,TinyJS是一个轻量级的JavaScript引擎,适用于资源受限的环境,通过解析、编译和执行JavaScript代码,为嵌入式应用提供脚本能力。开发者可以从其源码中学习到JavaScript引擎的基本构造和优化技术,而使用者...
### JavaScript 个人总结笔记 #### 一、JavaScript 简介 JavaScript 是一种广泛应用于网页开发的编程语言,主要用于创建动态交互式的网页。它是一种基于对象的语言,支持事件驱动编程,具有与 C 语言和 Java 类似的...
### JavaScript经验总结 #### 基础知识与脚本创建 - **创建脚本块**: - 使用 `<script language="JavaScript">` 来创建一个 JavaScript 的脚本块。 - 示例代码: ```html <script language="JavaScript"> //...
本文将围绕“JavaScript学习总结”这一主题,深入探讨其基本概念、语法特性、DOM操作以及与CSS的协同使用。 一、JavaScript基础 JavaScript由Brendan Eich在1995年发明,最初是为了网页交互而设计,现在已经成为...
这篇经典JavaScript知识总结涵盖了从基础语法到高级特性的多个方面,旨在帮助有一定基础的开发者巩固和扩展他们的JavaScript知识。 1. **创建脚本块**:在HTML文件中,使用`<script>`标签来插入JavaScript代码。...
### JavaScript入门总结 ...以上是对 JavaScript 入门阶段的一些基本知识点总结,涵盖了输出方法、语法基础、数据类型、事件处理以及字符串处理等方面的内容。对于初学者来说,熟练掌握这些基础知识是非常重要的。
DOM则提供了操作HTML文档的方法,允许通过JavaScript动态修改网页内容。通过DOM,我们可以查找、添加、删除或修改HTML元素,实现网页的动态更新。 JavaScript的特点包括: 1. 交互性:它能够实时响应用户的操作,...