📄 stringutils.as
字号:
package com.teknision.utils{
// TONY MacDonell
// Additions by Stacey Mulcahy
public class StringUtils {
public static function returnBetween(p_string:String, p_start:Number, p_end:Number):String {
trace("fullString: "+p_string+" start: "+p_start+" end: "+p_end);
var newString:String = p_string.slice(p_start, p_end);
return newString;
}
// trim
//trims whitespace from the entire content of a string excluding 'Space'
public static function trimWithin(p_string:String):String {
/*
codes:
13- Newline
10- Newline
9- Tab
*/
var retstr:String = p_string.split(String.fromCharCode(13)).join("").split(String.fromCharCode(10)).join("").split(String.fromCharCode(9)).join("").split(" ").join("");
return (retstr);
}
//trims whitespace from the front and back of a string
public static function trim(p_string:String):String {
var retstr:String = p_string;
/*
codes:
13- Newline
10- Newline
9- Tab
32- Space
*/
while (retstr.charCodeAt(0) == 13 || retstr.charCodeAt(0) == 10 || retstr.charCodeAt(0) == 9 || retstr.charCodeAt(0) == 32) {
retstr = retstr.slice(1);
}
while (retstr.charCodeAt(retstr.length-1) == 13 || retstr.charCodeAt(retstr.length-1) == 10 || retstr.charCodeAt(retstr.length-1) == 9 || retstr.charCodeAt(retstr.length-1) == 32) {
retstr = retstr.slice(0, retstr.length-1);
}
return (retstr);
}
// SM March 2006 Addition
// Trims white space on either side of the string as in ASP
public static function trimAll(p_string:String):String {
return (rTrim(lTrim(p_string)));
}
// SM March 2006 Addition
// Right Trim- Trim all white space to the Left of the String like ASP
public static function rTrim(p_string:String):String {
var str:Array = p_string.split("");
var j:Number = str.length-1;
while (j>0) {
if (str[j] == " ") {
str[j] = "";
} else {
break;
}
j--;
}
return (str.join(""));
}
// SM March 2006 Addition
// Left Trim- Trim all white space to the Left of the String like ASP
public static function lTrim(p_string:String):String {
var str:Array = p_string.split("");
var j:Number = 0;
while (j<str.length) {
if (str[j] == " ") {
str[j] = "";
} else {
break;
}
j++;
}
return (str.join(""));
}
// SM March 2006 Addition
// Capitalize the first Letter
public static function captialize(p_string:String):String {
//trim
var str:String = lTrim(p_string);
// in case there is white space
return (str.charAt(0).toUpperCase()+str.substr(1, str.length));
}
// Replace String
public static function replaceStr(p_string:String, p_searchString:String, p_replaceString:String):String {
return p_string.split(p_searchString).join(p_replaceString);
}
// SM March 2006 Addition
// Contains
public static function contains(p_string:String, p_searchString:String):Boolean {
return (p_string.indexOf(p_searchString)>-1);
}
// SM March 2006 Addition
//Capitalize words in a sentence
public static function capitalizeWords(p_string:String):String {
var str:String = new String();
var a:Array = p_string.split(" ");
var l:Number = a.length;
for (var i:Number = 0; i<l; i++) {
str += captialize(a[i]);
str += " ";
}
return (str);
}
// SM March 2006 Addition
// Returns a boolean based on if the string starts
public static function beginsWith(p_string:String, p_substr:String):Boolean {
return (p_string.substring(0, p_substr.length) === p_substr);
}
// SM March 2006 Addition
public static function endsWith(p_string:String, p_substr:String):Boolean {
return (p_string.substring(p_string.length-p_substr.length) === p_substr);
}
// SM March 2006 Addition
// REVERSE THE STRING
public static function reverse(p_string:String):String {
var rtnString:String = new String();
for (var i:Number = 0; i<p_string.length; i++) {
rtnString = p_string.charAt(i)+rtnString;
}
return (rtnString);
}
// SM March 2006 Addition
public static function isNumeric(i_value:Object):Boolean {
var num:Number = new Number(i_value);
return (!(isNaN(num)));
}
// SM March 2006 Addition
// TODO:: Should probably be moved to a Formatting Class
public static function formatCurrencyCommas(p_string:String):String {
var l:Number = p_string.length;
var rtnStr:String = new String();
for (var i:Number = l; i>0; i--) {
if (!((l-i)%3)) {
rtnStr = ","+rtnStr;
}
rtnStr = p_string.charAt(i-1)+rtnStr;
}
rtnStr = rtnStr.substr(0, rtnStr.length-1);
return rtnStr;
}
/*
* 7181238748 to 1(718)123-8748
*/
// SM March 2006 Addition
// TODO:: Should probably be moved to a Formatting Class
// TODO:: to be tested
public static function formatPhoneNumber(p_string:String):String {
var rtnValue:String = "";
if (p_string.length != 10 || p_string == null) {
return (p_string);
} else {
rtnValue = "1(";
var area:String = p_string.substring(0, 3);
rtnValue += area+")";
var st:String = p_string.substring(3, 6);
rtnValue += st+"-";
var end:String = p_string.substring(6, 10);
rtnValue += end;
}
return rtnValue;
}
//takes a string with containing urls and formats them as HTML links
// Tony
public static function formatLinksAsHTML(p_string:String, p_underline:Boolean, p_target:String):String {
var message:String = " "+p_string;
// SM additions to ensure those are optional params
p_target = (p_target != null) ? p_target : "_blank";
var linksplit:Array = message.split("http://");
var l:Number = linksplit.length;
var returntext:String = new String();
for (var i:Number = 0; i<l; i++) {
var spacepos:Number = linksplit[i].indexOf(" ", 0);
spacepos = (spacepos == -1) ? linksplit[i].length : spacepos;
if (spacepos != 0) {
var link:String = linksplit[i].substring(0, spacepos);
var resttext:String = linksplit[i].substring(spacepos+1);
var finallink:String = new String();
var finaltext:String = new String();
finallink = "<A HREF='http://"+link+"' TARGET='"+p_target+"'>"+link+"</A>";
if (p_underline) {
finallink = "<U>"+finallink+"</U>";
}
finaltext = finallink+" "+resttext;
returntext += finaltext;
} else {
finaltext = linksplit[i].substring(1);
returntext += finaltext;
}
}
return (returntext);
}
// SM August 2005. This is my version :)
public static function hiliteURLs(p_string:String, p_color:String):String {
var tmp:Array = p_string.split(" ");
p_color = (p_color != null) ? p_color : "#CC0000";
for (var i:Number = 0; i<tmp.length; i++) {
if (tmp[i].indexOf("www.") != -1 && tmp[i].indexOf("http://") == -1) {
tmp[i] = "<font color='"+p_color+"'><u><a href='http://"+tmp[i]+"' target='_blank'>"+tmp[i]+"</a></u></font>";
} else if (tmp[i].indexOf("http://") != -1 || tmp[i].indexOf("ftp://") != -1) {
tmp[i] = "<font color='"+p_color+"'><u><a href='"+tmp[i]+"' target='_blank'>"+tmp[i]+"</a></u></font>";
} else if (tmp[i].indexOf("@") != -1 && tmp[i].charAt(0) != "@" && tmp[i].charAt(tmp[i].length-1) != "@") {
tmp[i] = "<font color='"+p_color+"'><u><a href='mailto:"+tmp[i]+"'>"+tmp[i]+"</a></u></font>";
}
}
return tmp.join(" ");
}
public static function getStringBetween(p_string:String,startStr:String,endStr:String):String{
var startnum:Number = p_string.indexOf(startStr);
var endnum:Number = p_string.indexOf(endStr);
var stringBetween:String = p_string.slice((startnum+startStr.length),endnum);
return stringBetween;
}
public static function replaceVariableSpan(p_string:String,startStr:String,endStr:String,rplcStr:String):String{
var c_index:Number=0;
while(c_index!=-1){
c_index=p_string.indexOf(startStr,c_index);
if(c_index!=-1){
var t_index:Number=p_string.indexOf(endStr,c_index+startStr.length);
if(t_index!=-1){
var end_val:Number=t_index+endStr.length;
var addstr:String="";
if(rplcStr!=null){
addstr=rplcStr;
}
var new_str:String=p_string.substring(0,c_index)+addstr+p_string.substring(end_val);
p_string=new_str;
c_index+=addstr.length;
}else{
c_index+=1;
}
}
}
return p_string;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -