一、声明字符串:
var normal_monkey = "I am a monkey!<br>";
document.writeln("Normal monkey " + normal_monkey);
var bold_monkey = normal_monkey.bold();
document.writeln("Bold monkey " + bold_monkey);
这里的声明: var bold_monkey = normal_monkey.bold();
和下面对声明是等同的:
var bold_monkey = "<b>" + normal_monkey + "</b>";
第1个版本的声明看起来要简明得多。这里用到了字符串对象中
的bold对象,其他的字符串对象还有indexOf, charAt,
substring, 以及split, 这些方法可以深入字符串的组成结构。
首先我们研究一下indexOf。
2、indexOf
indexOf用于发现一系列的字符在一个字符串中等位置并告诉你子字符串的起始位置。如
果一个字符串中部包含该子字符串则indexOf返回returns "-1."
例子:
var the_word = "monkey";
//让我们从单词 "monkey"开始。
var location_of_m = the_word.indexOf("m");
//location_of_m(字母m的位置)将为0,因为字母m位于该字符串的起始位置。
var location_of_o = the_word.indexOf("o");
//location_of_o(字母o的位置)将为1。
var location_of_key = the_word.indexOf("key");
//location_of_key(key的位置)将为3因为子字符串“key”以字母k开始,而k
在单词monkey中的位置是3。
var location_of_y = the_word.indexOf("y");
//location_of_y)字母y的位置)是5。
var cheeky = the_word.indexOf("q");
//cheeky值是-1,因为在单词“monkey”中没有字母q。
indexOf更实用之处:
var the_email = prompt("What’s your email address?", "");
var the_at_is_at = the_email.indexOf("@");
if (the_at_is_at == -1)
{
alert("You loser, email addresses must
have @ signs in them.");
}
这段代码询问用户的电子邮件地址,如果用户输入的电子邮件地址中不包含字符 则 提
示用户"@你输入的电子邮件地址无效,电子邮件的地址必须包含字符@。"
3、charAt
chatAt方法用于发现一个字符串中某个特定位置的字符。
这里是一个例子:
var the_word = "monkey";
var the_first_letter = the_word.charAt(0);
var the_second_letter = the_word.charAt(1);
var the_last_letter = the_word.charAt(the_word.length-1);
the_first_letter(第1个字符)是"m"
the_second_letter(第2个字符)是"o"
the_last_letter(最后一个字符)是 "y"
注意利用字符串的length(长度)属性你可以发现在包含多少个字符。在本例中,
the_word是"monkey",所以the_word.length是6。不要忘记在一个字符串中第1个字符的
位置是0,所以最后一个字符的位置就是length-1。所以在最后一行中用了
the_word.length-1。>>
4、子字符串(substring)
子字符串(substring)和charAt有些象,不同之处在于它能够从一个单词中抓取整个的
子字符串,而不只是字母,这里是其格式:
var the_substring = the_string.substring(from, to);
"From"指的是子字符串中第1个字母的位置,"to"有点奇特,它是该子字符串中比最后
一个位置大1的位置.使用这种神奇的方法你可以标记子字符串的起始和结束位置,用
"to"的位置减去"from"的位置就会得出该子字符串的长度:
var the_string = "monkey";
var clergy = the_string.substring(0,4);
var tool = the_string.substring(3,6);
运行该段代码后变量clergy的值为"monk"; 变量tool的值为"key"。
子字符串常和indexOf一起使用,将字符串分成若干块.例如,
你可以从一个给定的URL中抽取出其域名:
var the_url = prompt("What’s the URL?","");
var lead_slashes = the_url.indexOf("//");
var domain_start = lead_slashes + 2;
var without_resource = the_url.substring(domain_start, the_url.length);
var next_slash = without_resource.indexOf("/");
var domain = without_resource.substring(0, next_slash);
这段代码的意思是:如果你输入
"http://www.webmonkey.com/javascript/index.html";,则域名就是
"www.webmonkey.com" .如果这个方法对你来说有些麻烦,我将向你介绍如何使用split
方法简化其执行过程.但是首先我们作一些分析.
基本的技巧是将第1个斜杠和第2个斜杠之间的内容分离出来:
var the_url = prompt("What’s the URL?","");
//这行代码向用户询问一个URL.假设用户输入了
"http://www.webmonkey.com/javascript/index.html.";
var lead_slashes = the_url.indexOf("//");
这行代码确定第一个双斜杠的位置.在本例中lead_slashes的值是5,因为双斜杠的位
置从5开始.
你可能会想,通常的URL都是以http://开始,所以双斜杠的位置肯定是在5开始,为什
么还要加入indexOf这一段多余的代码呢?但是问题的关键在于你不知道用户在填入URL
时是否一定填入http:,他们也许会不小心多键入了一个空格,也许他们所键入的URL在
一个加密服务器上,其URL是"https://www.whatever.com/"; .在编程你必须预料到种种
可能发生的问题.所以我们必须用indexOf方法确定双斜杠的确切的起始位置.
var domain_start = lead_slashes + 2;
这行代码用于计算该域名的第1个字母的起始位置.由于这里有一个双斜杠,所以域名
第1个字母的起始位置应该在双斜杠所在位置加2的位置.
var without_resource = the_url.substring(domain_start, the_string.length);
这段代码将域名起始位置往后的所有字符都提取出来.所以执行完这行代码后
without_resource是"www.webmonkey.com/javascript/index.html."
var next_slash = without_resource.indexOf("/");
这行代码计算出该字符串中下一个斜杠的位置,而从该字符串起始位置到这个斜杠之间
的内容就是域名.在本例中下一个斜杠的位置是17。
var domain = without_resource.substring(0, next_slash);
最后一步是提取出该字符串起始位置到下一个斜杠之间的所有内容.在本例中使得域名
等同于"www.webmonkey.com"。
这样做确实很麻烦,利用split方法则可以使该过程容易很多.>>
5、分割方法(splitting method)
你可以使用split方法用限位器来分割一系列的名称,然后将其
放在一个数组中.例如:
var my_friends ="trixie,moxie,sven,guido,hermes";
var friend_array =my_friends.split(",");
for (loop=0; loop < friend_array.length;loop++)
{ document.writeln(friend_array[loop] + " is myfriend.<br>");}
这段代码将字符串my_friends分割成包含5个元素的数组.JavaScript可以为你自动建
立一个数组,所以你无需使用new Array().
将字符串分割成数组之后,我们使用了循环语句写出每一个名称.我们可以利用split方
法简化前面所讲到的域名提取:
var the_url = prompt("What’s the URL?","");
var first_split = the_url.split("//");
var without_resource = first_split[1];
var second_split = without_resource.split("/");
var domain = second_split[0];
这段代码简化了很多而且也更容易理解.我们来分析一些这段代码:
var the_url = prompt("What’s the URL?","");
提示用户输入一个URL,假设用户输入
"http://www.webmonkey.com/javascript/index.html"; .
var first_split = the_url.split("//");
将用户输入的字符串分割成两块:first_split[0]是"http:",first_split[1]是
"www.webmonkey.com/javascript/index.html."
var without_resource = first_split[1];
//提取出数组中的第2个元素,所以现在without_resource是
"www.webmonkey.com/javascript/index.html."
var second_split = without_resource.split("/");
将without_resource分割成3块:www.webmonkey.com,javascript, 和index.html.现
在你可以看到split的用途了吧?
var domain = second_split[0];
现在我们提取出新数组中的第1个元素就可得出域名.
分享到:
相关推荐
JavaScript中的正则表达式是处理文本的强大工具,它在编程中扮演着不可或缺的角色,尤其是在字符串操作、数据验证和模式匹配等方面。本攻略将深入探讨JavaScript正则表达式的各种特性和用法,帮助你掌握这一核心技能...
JavaScript全攻略从入门到精通,这是一本涵盖了广泛JavaScript知识点的书籍,旨在帮助读者从零基础逐步成为精通JavaScript的专业开发者。书中的源码是实践学习的重要辅助材料,它包括了从基本概念到高级特性的各种...
### 正则表达式在JavaScript中的应用全攻略 #### 一、正则表达式的概念及其在JavaScript中的重要性 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者进行复杂的字符串搜索和替换。在...
ES6(ECMAScript 2015)的新特性如箭头函数、模板字符串、类和模块等让代码更加简洁易读。同时,Node.js的出现使得JavaScript可以用于服务器端编程,实现了前后端同构,提高了开发效率。《JavaScript快速全栈开发....
ECMAScript 6(ES6)及以上版本引入了许多现代特性,如类、模块、箭头函数和模板字符串,使得代码更加简洁和强大。 4. **DOM**:DOM(Document Object Model)是HTML和XML文档的抽象表示,它将文档结构转化为树形...
3. **字符串和数组操作**:学习如何处理字符串,包括连接、查找、替换等,以及数组的创建、遍历、排序和搜索。 4. **文件处理**:掌握读写文件、目录操作、上传下载等文件系统相关功能。 5. **错误和异常处理**:...
- 对象:以大括号 `{}` 包裹,键值对之间用逗号分隔,键是字符串,值可以是各种数据类型。 - 数组:以方括号 `[]` 包裹,元素之间用逗号分隔,可以包含对象或其他数据类型。 - 值:可以是字符串(双引号包围)、数字...
【标题】"wap全攻略,获取MM-DD hh:mm格式时间"揭示了这是一篇关于在编程环境下,特别是在移动开发(可能是指Web应用或早期的WAP应用)中,如何获取并格式化时间的教程。WAP(无线应用协议)虽然在现代移动互联网中...
- `'newwindow'` 是新窗口的名称,可选,如果为空字符串则由浏览器自动生成。 - `'height=100, width=400'` 分别指定窗口的高度和宽度。 - `'top=0, left=0'` 设置窗口距离屏幕顶部和左边的距离。 - `'toolbar=no, ...
这个方法接受三个参数:URL、窗口名称和特性字符串。例如,以下代码会打开一个全屏窗口: ```html ('http://www.pconline.com.cn','example01','fullscreen');"> <b>www.e3i5.com</b> ``` 在这个例子中,`'...
为了让应用适应全球市场,开发者需要了解如何实现多语言支持,包括资源文件的组织、本地化字符串的处理和区域设置的适配。 十、发布与升级 最后,了解如何发布应用、处理用户反馈、进行版本管理和更新发布,是维持...
模板字符串还支持多行书写,简化了字符串拼接。 6. **类(Classes)和模块(Modules)** ES6提供了基于原型的类语法,使面向对象编程更加直观。同时,引入了模块系统,允许代码按模块组织,通过`import`和`export...
最后,"搜索框全攻略"可能意味着这个项目提供了关于搜索框设计的完整指南,包括最佳实践、常见问题和解决策略,这对于开发者来说是一份宝贵的参考资料。 在压缩包文件"OkamiySearch"中,可能包含了实现这些功能的源...
3.3.1 页面数据绑定全攻略 131 3.3.2 Bind和Eval的区别 140 3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 ...
3.3.1 页面数据绑定全攻略 131 3.3.2 Bind和Eval的区别 140 3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 ...