实例:用JavaScript来操作字符串(一些字符串函数)_基础知识

操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符。下面的 JavaScript 函数为开发人员提供了他们所需要的所有功能:

• concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。

• indexOf() – 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。

• charAT() – 返回指定位置的字符。

• lastIndexOf() – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。

• match() – 检查一个字符串是否匹配一个正则表达式。

• substring() – 返回字符串的一个子串。传入参数是起始位置和结束位置。

• replace() – 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。

• search() – 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。

• slice() – 提取字符串的一部分,并返回一个新字符串。

• split() – 通过将字符串划分成子串,将一个字符串做成一个字符串数组。

• length() – 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。

• toLowerCase() – 将整个字符串转成小写字母。

• toUpperCase() – 将整个字符串转成大写字母。

注意: concat 、 match 、 replace 和 search 函数是在 JavaScript 1.2 中加入的。所有其它函数在 JavaScript 1.0 就已经提供了。

下面让我们看一下如何在 JavaScript 使用这些函数。下面的代码是用到了前面提到的所有函数:

function manipulateString(passedString1, passedString2) {

var concatString;

// The string passed to concat is added to the end of the first string

concatString = passedString1.concat(passedString2);

alert(concatString);

// The following if statement will be true since first word is Tony

if (concatString.charAt(3) == "y") {

alert("Character found!"); }

// The last position of the letter n is 10

alert("The last index of n is: " + concatString.lastIndexOf("n"));

// A regular expression is used to locate and replace the substring

var newString = concatString.replace(/Tony/gi,"General");

// The following yields Please salute General Patton

alert("Please salute " + newString);

// The match function returns an array containing all matches found

matchArray = concatString.match(/Tony/gi);

for (var i=0; i

alert("Match found: " + matchArray[i]);

}

// Determine if the regular expression is found, a –1 indicates no

if (newString.search(/Tony/) == -1) {

alert("String not found");

} else {

alert("String found.");

}

// Extract a portion of the string and store it in a new variable

var sliceString = newString.slice(newString.indexOf("l")+2,newString.length);

alert(sliceString);

// The split function creates a new array containing each value separated by a space

stringArray = concatString.split(" ");

for (var i=0; i

alert(stringArray[i];

}

alert(newString.toUpperCase());

alert(newString.toLowerCase());

}

下面是执行上面的代码得到的结果:

Tony Patton

Character Found!

The last index of n is: 10

Match found: Tony

Please salute General Patton

String not found

Patton

Tony

Patton

GENERAL PATTON

general patton

示例代码把所有这些提到的函数都用到了。

特殊字符

除了这些函数之外,还有很多的特殊字符可以用来表示关键的效果。这些特殊字符包括:

• t – 跳格键

• b – 退格 / 删除

• r – 回车

• n – 换行

• f – 换页

特殊字符最常见的用途就是格式化输出。例如,你可能需要在输出中插入一个换行来正确地显示一个值。而且,在换行时也需要回车。在一些平台上,“ n ”已经足够产生换行效果了,而在一些机器上要正确地显示一个换行则需要“ rn ”。下面的例子显示了在一个多行窗口上显示的特殊字符:

var output = null;

output = "Special Characters";

output += "n";

output += "===============";

output += "n";

output += "\t - tab";

output += "n";

output += "\b - backspace/delete";

output += "n";

output += "\r - carriage return";

output += "n";

output += "\n - newline";

output += "n";

output += "\f - form feed";

output += "n";

alert(output);

前面的例子使用加号来连接字符串,而没有使用 concat 函数。原因很简单,对于 concat 函数来说,每一个操作都需要一个新的变量;反之,我们这里用的这种方法则简单地扩展了原有的值,而不需要新的变量。而且,示例中使用换码符来正确地显示特殊字符。系统将一个反斜线当作一个信号,认为它后面会跟一个特殊字符,但是连着两个反斜线则抵消这种操作。输出中的每个字符都通过 newline 特殊字符被显示在新的一行。

添加到工具箱中

特殊字符和函数可以与其它 JavaScript 技巧结合起来解决很多问题。其中一种情况是用来进行 JavaScript 客户端表单验证,这篇文章中提出的方法可以简单地用来实现表单验证。

下面的代码将在一个表单被提交时调用。要提交的表单包含三个域:名称、地址和邮政编码。为了实现起来比较简单,我们只验证每个域都不能为空,并且邮政编码必须是数字。下面的 JavaScript 代码完成这一功能:

1 function validation() {

2

3 var doc = document.forms[0];

4

5 var msg = "";

6

7 if (doc.Name.value == "") {

8

9 msg += "- Name is missingn";

10

11 }

12

13 if (doc.Address.value == "") {

14

15 msg += "- Address is missingn";

16

17 }

18

19 if (doc.ZipCode.value == "") {

20

21 msg += "- Zip code is missingn";

22

23 }

24

25 var zip = new String(doc.ZipCode.value);

26

27 if (zip.search(/^[0-9][0-9][0-9][0-9][0-9]$/)==-1) {

28

29 msg += "- Enter valid Zip code";

30

31 }

32

33 if (msg == "") {

34

35 doc.submit;

36

37 } else {

38

39 msg = "Please correct the following validation errors and re-submit:nn" + msg;

40

41 alert(msg);

42

43 }

44

45 }

46

47

在用户提交表单时,这个函数就会被调用。对函数的调用是在一个 HTML 按钮的 onSubmit 事件中实现的。

验证函数检查每个域是否为空。如果发现了一个空值,那么就会在验证消息变量 msg 后面添加一个出错消息。此外,还使用了一个正则表达式来验证邮政编码域的格式。在这里,我们只接受五位数的美国地区邮政编码。如果发现有任何错误(即 msg 变量不为空),那么程序就会显示一个错误消息;否则的话,程序就会提交表单。

一门强大的语言

JavaScript 已经发展成熟为一种功能完备的语言,能够用来构建强大的应用程序。它是对具有非连接性天性的 Web 界面的一个完美的补充,能够在不与 Web 服务器交互的情况下完成很多客户端操作。

html5show()函数怎么写,实例:用JavaScript来操作字符串(一些字符串函数)_基础知识...相关推荐

  1. js+打开php文档,javascript打开word文档的方法_基础知识

    首先我们新建一个html文件,并且写一个FileUpLoad以及button控件. 代码如下: fileUpload 然后,在写一个javascript OpenFile方法. 代码如下: funct ...

  2. spidermonkey php,javascript SpiderMonkey中的函数序列化如何进行_基础知识

    在Javascript中,函数可以很容易的被序列化(字符串化),也就是得到函数的源码.但其实这个操作的内部实现(引擎实现)并不是你想象的那么简单.SpiderMonkey中一共使用过两种函数序列化的技 ...

  3. 函数不可以直接调用其他函数内部定义的变量_基础知识回顾函数(一)

    一.函数的作用 函数就是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求.函数在开发过程中,可以更高效的实现代码重用. # 备注:因为在Python里面,函数 ...

  4. php取名字算法,JavaScript排序算法之希尔排序的2个实例_基础知识

    插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率. 但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位. 希尔排序按其设计者希尔(Donald Shell)的 ...

  5. html事件机制,浅析JavaScript中的事件机制_基础知识

    事件是什么 ? JavaScript与HTML交互是通过在用户或浏览器操纵页面上发生的事件进行处理. 当页面加载,这是一个事件.当用户点击一个按钮,这一下,也就是一个事件.事件的另一个例子是类似按下任 ...

  6. php js绝对路径,javascript将相对路径转绝对路径示例_基础知识

    这里介绍的其实本质上是两种方法,通过创建DOM或通过JavaScript计算: 1)通过新创建的Image, 经测试会发送一个Aborted的请求,并且IE6不支持, 将new Image改成docu ...

  7. python内置函数用来返回列表、元组、字典_python程序设计第一章基础知识 题库及选解...

    由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解.各章链接如下 填空 1. Python安装扩展库常用的是()工具.(pip) 2. Python标准库m ...

  8. 三菱modbusRTU通讯实例_基础知识 | 三菱FX3U4AD模拟量输入模块

    点击箭头处"工业之家",选择"关注公众号"! 三菱FX3U-4AD模拟量输入模块 一.FX3U-4AD和FX3U系列PLC的连接实图如下: 三菱FX3U和模拟量 ...

  9. python内置函数用来打开或创建文件_2020年《python程序设计》基础知识及程序设计598题XS[含参考答案]...

    2020年<python程序设计>基础知识及程序设计 598题[含参考答案] 一.填空题 1.表达式 len('中国'.encode('utf-8')) 的值为___________.(6 ...

  10. sql server中截取字符串的常用函数

    sql server提供了3个常用截取字符串方法,LEFT().RIGHT().SUBSTRING(),跟C#不同的是,起始第一个索引为1. 1.LEFT ( character_expression ...

最新文章

  1. JDK+TOMCAT在LINUX下简单的配置
  2. Mysql 向表中插入50万条数据(生成随机字符串和 插入的时间间隔是60s)。
  3. 消费金融大潮来了,银行必须打出这套进攻+防守的组合拳
  4. 深入理解Java幂等性
  5. OPC服务器如何采集设备的信息,如何将OPC服务器采集的设备数据转为MQTT方式,实现云端发布或订阅...
  6. ubuntu 14 java web服务器搭建
  7. OJ1041: 数列求和2(高阶递推)
  8. MySQL备份之mysqlhotcopy与注意事项
  9. 叫号系统服务器,排队叫号系统设置方法
  10. 简单html倒计时器代码,js简单倒计时实现代码
  11. Java根据关键字在PDF/Word插入图片
  12. Zabbix全网监控
  13. FeHelper下载:(Chrome浏览器)
  14. python计算两点间距离_用python计算图像中两点之间的距离
  15. 大唐移动骨干集体出走
  16. **Unity环境光遮蔽(Ambient Occlusion)Shader实现逻辑**
  17. API接口平台,包含各种各样的资源接口,方便开发和测试
  18. php fpdf生成个人简历,php生成PDF文件(FPDF)
  19. python3d_Power BI将超越python和D3,成为数据可视化的福音、定性数据分析的未来?...
  20. [CSS]控制图片<img src=“ “>没有时隐藏

热门文章

  1. python_迭代器、生成器
  2. HihoCoder 1511: 树的方差(prufer序)
  3. python 删除大表数据
  4. 20165320 我期望的师生关系
  5. springboot 线程池和数据库链接池配置以及多线程效率实测
  6. 使用Spring注解获取配置文件信息
  7. iOS打包后收不到推送信息
  8. Ajax : load()
  9. linux如何删除密钥链接,如何在不创建新密钥的情况下删除SSH密钥的密码短语?...
  10. POI合并单元格时CellRangeAddress类提示过时之解决