JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析

本文实例讲述了JS常见疑难点分析之match,charAt,charCodeAt,map,search用法。分享给大家供大家参考,具体如下:

JavaScript match() 方法

定义和用法

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

语法

匹配字符串,返回指定的值

stringObject.match(searchvalue)

匹配正则,返回指定的值

stringObject.match(regexp)

使用 match() 来检索一个字符串例子:

<html>

<body>

<script type="text/javascript">

varstr="Hello world!"

document.write(str.match("world") +"<br />")

document.write(str.match("World") +"<br />")

document.write(str.match("worlld") +"<br />")

document.write(str.match("world!"))

</script>

</body>

</html>

最终出现的结果为,world,null,null,world!

使用 match() 来检索一个正则表达式的匹配例子:

<html>

<body>

<script type="text/javascript">

varstr="1 plus 2 equal 3";

//这里的正则表达式必须加上g,全局匹配,不然就会匹配一个值即返回

document.write(str.match(/\d+/g))

</script>

</body>

</html>

通常来说,我们用match用在正则上面比较多,也可以用其来代理indexOf和lastIndexOf来判断字符串里面是否存在此值。

JavaScript search() 方法

定义和用法

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,检索到则返回匹配的子串的起始位置,无法检索到值,返回-1。

语法

stringObject.search(regexp)

该参数可以是需要在 stringObject 中检索的子串,也可以是需要检索的 RegExp 对象。

要执行忽略大小写的检索,请追加标志 i。

search() 例子:

<script type="text/javascript">

varstr="Visit W3School!"

document.write(str.search(/W3School/))

</script>

返回索引值为6,search通常与正则配合使用,可以达到indexOf的效果。

JavaScript charAt() 方法

定义和用法

charAt() 方法可返回指定位置的字符。

请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。

语法

返回指定位置的字符串

stringObject.charAt(index)

chartAt实例:

<script type="text/javascript">

varstr="Hello world!"

document.write(str.charAt(1))

</script>

最终返回结果为:e,通常我们可以通过chartAt来从某个字符串取得具体的字符。

JavaScript charCodeAt() 方法

定义和用法

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

语法

stringObject.charCodeAt(index)

charCodeAt()实例

注释:字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。

<script type="text/javascript">

varstr="Hello world!"

document.write(str.charCodeAt(1))

//返回H的Unicode 编码101

</script>

js中Array.prototype.map()方法

定义和用法

map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

语法

array.map(callback[, thisArg])

callback原数组中的元素经过该方法后返回一个新的元素。

currentValue,callback 的第一个参数,数组中当前被传递的元素。

index,callback 的第二个参数,数组中当前被传递的元素的索引。

array,callback 的第三个参数,调用 map 方法的数组。

thisArg执行 callback 函数时 this 指向的对象。

map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用

delete 删除的索引则不会被调用。callback 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。

使用map()的第一个例子:

下面的代码将一个数组中的所有单词转换成对应的复数形式.

functionfuzzyPlural(single) {

 varresult = single.replace(/o/g,'e');

 if( single ==='kangaroo'){

  result +='se';

 }

 returnresult;

}

varwords = ["foot","goose","moose","kangaroo"];

console.log(words.map(fuzzyPlural));

最后结果:

["feet","geese","meese","kangareese"]

求数组中每个元素的平方根例子

varnumbers = [1, 4, 9];

varroots = numbers.map(Math.sqrt);

/* roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9] */

在字符串上使用 map 方法

varmap = Array.prototype.map

vara = map.call("Hello World",function(x) {returnx.charCodeAt(0); })

// a的值为[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

<!DOCTYPE HTML>

<html lang="en-US">

<head>

  <meta charset="UTF-8">

  <title></title>

</head>

<body>

  <script type="text/javascript">

    //var map = Array.prototype.map

    vara = Array.prototype.map.call("Hello World",function(x) {returnx.charCodeAt(0); })

    // a的值为[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

    alert(a);

  </script>

</body>

</html>

map兼容旧环境

map 是在最近的 ECMA-262 标准中新添加的方法;所以一些旧版本的浏览器可能没有实现该方法。在那些没有原生支持 map 方法的浏览器中,你可以使用下面的 Javascript 代码来实现它。所使用的算法正是 ECMA-262,第 5 版规定的。假定Object, TypeError, 和 Array 有他们的原始值。而且 callback.call 的原始值也是 Function.prototype.call。

// 实现 ECMA-262, Edition 5, 15.4.4.19

// 参考: http://es5.github.com/#x15.4.4.19

if(!Array.prototype.map) {

 Array.prototype.map =function(callback, thisArg) {

  varT, A, k;

  if(this==null) {

   thrownewTypeError(" this is null or not defined");

  }

  // 1. 将O赋值为调用map方法的数组.

  varO = Object(this);

  // 2.将len赋值为数组O的长度.

  varlen = O.length >>> 0;

  // 4.如果callback不是函数,则抛出TypeError异常.

  if({}.toString.call(callback) !="[object Function]") {

   thrownewTypeError(callback +" is not a function");

  }

  // 5. 如果参数thisArg有值,则将T赋值为thisArg;否则T为undefined.

  if(thisArg) {

   T = thisArg;

  }

  // 6. 创建新数组A,长度为原数组O长度len

  A =newArray(len);

  // 7. 将k赋值为0

  k = 0;

  // 8. 当 k < len 时,执行循环.

  while(k < len) {

   varkValue, mappedValue;

   //遍历O,k为原数组索引

   if(kinO) {

    //kValue为索引k对应的值.

    kValue = O[ k ];

    // 执行callback,this指向T,参数有三个.分别是kValue:值,k:索引,O:原数组.

    mappedValue = callback.call(T, kValue, k, O);

    // 返回值添加到新书组A中.

    A[ k ] = mappedValue;

   }

   // k自增1

   k++;

  }

  // 9. 返回新数组A

  returnA;

 };

}

通常生成时间戳的巧妙方法

第一种方式

functiongetTimeStamp()

{

vartimestamp=newDate().getTime();

vartimestampstring = timestamp.toString();//一定要转换字符串

oldTimeStamp = timestampstring;

returntimestampstring;

}

第二种方式

newDate().toString()//同样可以达到效果,更简洁

如何使用md5加密方法:

引用google,md5加密的库文件:http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/md5.js

其实蛮简单的,里面CryptoJS.SHA1(),直接引用加密即可,举个栗子:

就这样直接调用就可以了

varkeyvaluestring ="ddddd";

sign = CryptoJS.SHA1(keyvaluestring).toString();

时间: 2024-10-06 15:12:47

JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析的相关文章

JS中match,charAt,charCodeAt,map,search用法分析

本文实例讲述了JS常见疑难点分析之match,charAt,charCodeAt,map,search用法.分享给大家供大家参考,具体如下: JavaScript match() 方法 定义和用法 match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置. 语法 匹配字符串,返回指定的值 stringObject.match(searchvalue) 匹配正则,返回指定

GO语言映射(Map)用法分析_Golang

本文实例讲述了GO语言映射(Map)用法.分享给大家供大家参考.具体如下: 映射是一种内置的数据结构,用来保存键值对的无序集合. (1)映射的创建 make ( map [KeyType] ValueType, initialCapacity ) make ( map [KeyType] ValueType ) map [KeyType ] ValueType {} map [KeyType ] ValueType { key1 : value1, key2: value2, ... , key

启动Oracle常见疑难问题分析

oracle|问题 启动Oracle常见疑难问题分析 (2003-10-1)  本文出自<网管员世界>2003年第10期"故障诊断"栏目 实例和数据库的启动与关闭是DBA的重要职责之一.只有打开数据库,其他用户才能对数据库中的数据进行操作.一旦数据库关闭,便不能对其操作.对于DBA们来说,关闭和重新启动数据库以便优化.调整应用程序的运行是经常碰到的事情.如果用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则

Oracle基础知识-启动Oracle常见疑难问题分析

实例和数据库的启动与关闭是DBA的重要职责之一.只有打开数据库,其他用户才能对数据库中的数据进行操作.一旦数据库关闭,便不能对其操作.对于DBA们来说,关闭和重新启动数据库以便优化.调整应用程序的运行是经常碰到的事情.如果用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则用户将失去连接,直到数据库重新启动.经常关闭和启动会对数据库性能造成一定的影响,当然也会影响到用户对数据库的使用.本文从管理数据库的角度来分析在Oracle启动

PHP常用函数和常见疑难问题解答

虽然PHP在整体功能上不如Java强大,但相比PHP而言Java算是较重量级的,所以在小中型系统的开发上,使用PHP的趋势不可挡,就算是大型网站,比如淘宝也部分使用了PHP(Java后台逻辑+PHP前台展示),所以赶紧开始学PHP啦 首先介绍下比较简单但必不可少且实用的知识,可以当手册查询,适合像我一样的新手看.   PHP常用库函数介绍   一.PHP字符串操作常用函数 1.确定字符串长度  int strlen(string str) 2.比较两个字符串 a. strcmp函数对两个字符串进

PHP常用函数和常见疑难问题解答_php技巧

首先介绍下比较简单但必不可少且实用的知识,可以当手册查询,适合像我一样的新手看. PHP常用库函数介绍 一.PHP字符串操作常用函数1.确定字符串长度 int strlen(string str)2.比较两个字符串a. strcmp函数对两个字符串进行二进制安全的比较,并区分大小写int strcmp(string str1,string str2)b. 以不区分大小写的方式比较两个字符串int strcasecmp(string str1,string str2) 3.求两个字符串相同部分in

解答Win8系统中邮件相应的常见疑难

  导读:解答Win8系统邮件常见疑难,目前一些喜欢在系统中使用邮件服务的童鞋们,在操作使用微软最新研发的Win8操作系统下,使用了一段时间之后,网络中就出现了一系列的问题症状,这些相对应的症状疑难我们又该如何对其进行操作解决呢? 如何向"邮件"中添加电子邮件帐户? 在"开始"屏幕上,点击或单击"邮件". 1.从屏幕右边缘向中间轻扫,然后点击"设置". 2.点击或单击"帐户". 3.点击或单击"添

js 常见容错

js 常见容错: 1,使用插件时先判断插件是否存在 错误: Js代码   if (plugins && plugins.toast && plugins.toast.showShortCenter) {           plugins.toast.showShortCenter(message22);       } else {           alert(message22);       }       正确: Js代码   if (window.plugin

Linux常见疑难问答​

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/1328871 Linux常见疑难问答 (1)按a~z顺序排列启动服务进程. #exportLC_ALL=C           #英文环境变量设置,主要用于解决乱码问题 #chkconfig –list | grep [z-a] : | grepon $ sort (2)显示运行级别为5的所有服务. #chkcon