This page was last modified 00:28, 24 April 2008.
使用Prototype JavaScript库: 在WRT应用中进行字符串操作
From Forum Nokia Wiki
Contents |
简介
总所周知,Prototype是一个著名的跨浏览器JavaScript库, 它支持几乎所有当前流行的浏览器,比如: FireFox, Safari, IE, Opera, 等等。 Prototype最新版(1.6.0),甚至更早版本,也支持AppleWebKit。AppleWebKit是一个有Apple公司开源的Web引擎。(它也是Safari的核心引擎。)
Nokia Web浏览器建立在S60WebKit上,S60WebKit是开源的WebKit项目在S60平台上的移植。Nokia WRT(Web-RunTime)也基于此。
这个部分将演示如何使用prototype.js库操纵字符串。
字符串操作——使用String类
在prototype.js库中, String类有许多有用的方法。下面是这个类的方法清单:
blank, camelize, capitalize, dasherize, empty, endsWith, escapeHTML, evalJSON, evalScripts, extractScripts, gsub, include, inspect, interpolate, isJSON, parseQuery, scan, startsWith, strip, stripScripts, stripTags, sub, succ, times, toArray, toJSON, toQueryParams, truncate, underscore, unescapeHTML, unfilterJSON
上面的列举中,下面几个函数将在样例应用中进行测试。
- gsub(pattern, replacement) -> string
全局搜索替换函数。
Returns the string with every occurrence of a given pattern replaced by either a regular string, the returned value of a function or a Template string. The pattern can be a string or a regular expression.
- escapeHTML() -> string
转义函数。将HTML特殊字符转换为对应的编码字符。
Converts HTML special characters to their entity equivalents.
- unescapeHTML() -> string
转义函数。将字符串中含有的编码形式的特殊HTML字符转换为其正常的格式。
Strips tags and converts the entity forms of special HTML characters to their normal form.
String类的完全参考,请浏览: http://www.prototypejs.org/api/string
下面是本主题样例应用的几个测试用例:
- 第一个用例是如何使用gsub函数(正则表达式)
- 第二个演示如何使用gsub函数(回调函数)
- 第三个演示如何模板化方式生成格式化的字符串——使用Template类
- 最后一个演示如何对含有HTML标签的字符串进行escape与unscape操作
前三个测试用例的样例代码来自: http://www.sergiopereira.com/articles/prototype.js.html#Strings, 请到这里查看更多信息。
这里,我仅对最后一个用例的测试代码做些解释。 在这个例子Widget的主HTML文件中,有两个占位符,用于显示由JavaScript代码生成的结果。前一个占位显示字符串变量的原本内容;后一个用于显示该字符串的被转义后的版本。 相关代码示例如下:
HTML Code:
<div id="aholder1">Holder1: <span id="holder1">This data will be replaced.</span></div> <div id="aholder2">Holder2: <span id="holder2">This data will be replaced also.</span></div>
Javascript Code:
// test case: escapseHTML function testEscapeHTML() { var data = "<b>Hello, world!</b>"; $('holder1').innerHTML = data; alert ($('holder1').innerHTML); $('holder2').innerHTML = data.escapeHTML(); alert ($('holder2').innerHTML); } // test case: unescapseHTML function testUnescapeHTML() { var data1 = $('holder1').innerHTML; alert(data1.unescapeHTML()); var data2 = $('holder2').innerHTML; alert(data2.unescapeHTML()); }
所有的测试用例都通过了。你自己可以测试String类的其他方法。
下一个主题将是对象创建。
下载样例程序
下载本主题的样例Widget: Image:PrototypeString.zip. 安装时,将后缀.zip改为.wgz。
对于最新版本,请浏览: http://code.google.com/p/prototypewrt/downloads/list
相关主题
- 使用Prototype JavaScript库: 在WRT应用中概要说明
- 使用Prototype JavaScript库: 在WRT应用中使用基本操作(工具类函数)
- 使用Prototype JavaScript库: 在WRT应用中进行字符串操作
- 使用Prototype JavaScript库: 在WRT应用中创建对象
- 使用Prototype JavaScript库: 在WRT应用中使用Prototype UI库
- 使用Prototype JavaScript库: 在WRT应用中使用表单与AJAX(JSON)
