Prototype 通过 String.prototype
添加了一系列的方法,增强了 String
对象的功能。 厌倦了手动移除字符串首尾的空格吗?试一下我们的 String#strip 方法。 想要把 replace
方法替换掉吗?注意一下 String#sub 和 String#gsub 方法。需要将字符串解析为一个查询字符串吗?我们刚好有 String#toQueryParams 方法。
blank() -> Boolean
检查字符串是否为空或只包含空白符。
camelize() -> string
将一个用横线分隔的字符串转换为 Camel 形式。如 'foo-bar'
将被转换为 'fooBar'
。
capitalize() -> string
将一个字符串的首字母转换为大写,其它的字母全部转为小写。
dasherize() -> string
将字符串中的下划线全部替换为横线("_"
替换为 "-"
)。
empty() -> Boolean
检查字符串是否为空。
endsWith(substring) -> Boolean
检查字符串是否以 substring
作为结尾。
escapeHTML() -> string
将 HTML 特殊字符转换为它们的等价实体。
evalJSON([sanitize = false]) -> object
执行一个 JSON 格式的字符串,并返回结果对象。如果可选的参数 sanitize
被设置为 true
,则会检测字符串中是否包含恶意或错误代码,若检测到,则会停止字符串的执行, 不再调用 eval
。
evalScripts() -> [returnedValue...]
执行字符串中包含的所有 script
块的内容。返回一个数组,该数组包含每个 script
执行后返回的值。
extractScripts() -> [script...]
提取出字符串中包含的所有 script
的内容,并将之返回作为一个字符串数组。
gsub(pattern, replacement) -> string
将字符串中所有与 pattern
指定的模式匹配的子串全部用 replacement
替换掉。replacement
可以是一个普通的字符串、一个回调函数或是一个 Template 字符串。pattern
可以是一个字符串或是一个正则表达式。
include(substring) -> Boolean
检查字符串是否包含子串 substring
。
inspect([useDoubleQuotes = false]) -> String
返回该字符串针对调试的字符串表现形式(即用单引号或双引号包括起来,并使用 '\' 对特殊字符进行转义)。
interpolate(object[, pattern]) -> string
将字符串看作一个模板,并使用 object
的属性填充它。
isJSON() -> boolean
使用正则表达式检测字符串是否是合法的 JSON 格式。这是一个在内部使用的安全检测方法。
toQueryParams 方法的别名。
scan(pattern, iterator) -> string
该方法允许遍历字符串中与参数 pattern
指定的模式(可以是一个字符串或是一个正则表达式) 匹配的所有子串。返回原始字符串本身。
startsWith(substring) -> Boolean
检查字符串是否以 substring
作为开头。
strip() -> string
移除字符串首尾的所有空白符。
stripScripts() -> string
移除字符串中所有的 HTML script
块。
sub(pattern, replacement[, count = 1]) -> string
将字符串中前 count
个与 pattern
指定的模式匹配的子串用 replacement
替换掉。replacement
可以是一个普通的字符串、一个回调函数或是一个 Template 字符串。pattern
可以是一个字符串或是一个正则表达式。
succ() -> string
用于 ObjectRange 内部。根据 Unicode 字母表转换字符串最后的字符为后续的字符。
times(count) -> string
将字符串重复 count
次。
toArray() -> [character...]
将字符串拆分为字符数组。
toJSON() -> String
返回一个 JSON 格式的字符串。
toQueryParams([separator = '&']) -> Object
解析一个 URI 查询字符串,并返回由“参数/值”对组成的对象。
truncate([length = 30[, suffix = '...']]) -> string
将字符串截短为指定的长度(注意:这里的长度包含了后缀部分), 并添加一个后缀(表示它仅只是一个摘要)。
underscore() -> string
将一个 Camel 形式的字符串转换为以下划线("_"
)分隔的一系列单词。
unescapeHTML() -> string
移除字符串中的标签,并将用实体表示的 HTML 特殊字符转换为它们的正常形式。
unfilterJSON([filter = Prototype.JSONFilter]) -> String
移除 Ajax JSON 或 JavaScript 响应内容周围的安全注释界定符。这是供内部使用的一种安全机制。
以下是HTML代码:【运行代码】【复制代码】 <html>
<head>
<title>String Test</title>
<script src="/js/prototype.js"></script>
<script>
function testStrip()
{
var str=new String(' wanfangdata ');
alert(str.strip());
}
function teststripTags()
{
var str=new String('<html>2002<head>2005<body> ');
alert(str.stripTags());
}
function testtruncate()
{
var str=new String('king123456789987654321');
alert(str.truncate(8,'*'));
}
function testcamelize()
{
var str=new String('Background-color')
alert(str.camelize())
}
function testcapitalize()
{
var str=new String('back');
alert(str.capitalize());
}
function testDasherize()
{
var str=new String('Hello_World');
alert(str.dasherize());
}
function testinspect()
{
alert("sdfj\"sfa".inspect() );
}
function testgsub()
{
alert("skdjfAsfdjkAdk".gsub(/A/,function(match) {return match[0].toLowerCase()}));
}
function testScan()
{
alert("skdjfAsfdjkAdk".scan(/A/,function(){alert('have a A')}));
}
function testUnderscore()
{alert('borderBottomWidth'.underscore());
}
function testTemplate()
{var temp = new Template("被替换");
alert(temp.evaluate('aAklkljkjAkka'));
}
function testTimes()
{
alert('['+'Q'.times(10)+']');
}
function testEval()
{
var str="<script"+">alert('ok');<"+"/script>";
str.evalScripts();
}
</script>
<body>
<p><input type=button value='Strip' onclick='testStrip();' />" wanfangdata " ---> 'wanfangdata'去掉两边的空格</p><br/>
<p><input type=button value='stripTags' onclick='teststripTags();' />“<html>2002<head>2005<body>” ---> '20022005'去掉html标签</p><br/>
<p><input type=button value='truncate' onclick='testtruncate();' />“123456789>987654321” ---> '123456>'字符串截断</p><br/>
<p><input type=button value='camelize' onclick='testcamelize();' />Background-color --->BackgroundColor</p><br/>
<p><input type=button value='capitalize' onclick='testcapitalize();' />back--->Back</p><br/>
<p><input type=button value='inspect' onclick='testinspect();' />sdfj\"sfa--->sdfj"sfa</p><br/>
<p><input type=button value='testgsub' onclick='testgsub();' />skdjfAsfdjkAdk--->skdjfasfdjkadk</p><br/>
<p><input type=button value='testScan' onclick='testScan();' />字符串检测</p><br/>
<p><input type=button value='testTemplate()' onclick='testTemplate();' />字符串模板</p><br/>
<p><input type=button value='testTimes' onclick='testTimes();' />字符串重复</p><br/>
<p><input type=button value='执行脚本' onclick='return testEval();' />执行字符串脚本</p><br/>
<p><input type=button value='testUnderscore' onclick='testUnderscore();' />'borderBottomWidth’.underscore() -> 'border_bottom_width’
</p><br/>
<p><input type=button value='testDasherize' onclick='testDasherize();' />'Hello_World' ---> 'Hello-World'把下划线转化成-</p><br/>
</body>
</html>