Child pages
  • Utils

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[ObjectString]{td}{td}[#dateFormat]\(date, format)
Format a date object to a text representation or a parses a datestring to a date object.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getUnicodeCharacter]\(unicodeCharacterNumber)
Returns a string containing the character for the unicode number.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#hasRecords]\(foundset)
Returns true if the (foundset_or_record, \[qualifiedRelationString\]related)foundset exists and has records.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#hasRecords]\(record, relationString)
Returns true if the (related)foundset exists and has records.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isMondayFirstDayOfWeek]\()
Returns true when Monday is the first day of the week for your current locale setting.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#numberFormat]\(number, digitsOrFormatdigits)
Format a number to specification (or to have a defined fraction).{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringEscapeMarkup#numberFormat]\(textStringnumber, \[escapeSpaces\], \[convertToHtmlUnicodeEscapes\]format)
ReturnsFormat thea escapednumber markup text (HTML/XML)to specification.{td}{tr}{tbody}{tbody}{tr}{td}[StringDate]{td}{td}[#stringFormat#parseDate]\(text_to_formatdate, parameters_arrayformat)
FormatsParse a string according to formata specifiersdate and argumentsobject.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringIndexReplace#stringEscapeMarkup]\(textString, i_start, i_size, replacement_text)
Replaces a portion of a string with replacement text from a specfied index)
Returns the escaped markup text (HTML/XML).{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringInitCap#stringEscapeMarkup]\(texttextString, escapeSpaces)
Returns allthe wordsescaped startingmarkup with capital charstext (HTML/XML).{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringLeft#stringEscapeMarkup]\(textString, i_sizeescapeSpaces, convertToHtmlUnicodeEscapes)
Returns a string with the requestedescaped numbermarkup of characters, starting from the lefttext (HTML/XML).{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringLeftWords#stringFormat]\(text_to_format, numberof_wordsparameters)
ReturnsFormats thea numberstring ofaccording words,to startingformat fromspecifiers theand leftarguments.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringMD5HashBase16#stringIndexReplace]\(textStringtext, i_start, i_size, replacement_text)
ReturnsReplaces thea md5portion hashof (encodeda asstring base16)with forreplacement specified text.text from a specified index.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringMD5HashBase64#stringInitCap]\(textStringtext)
Returns theall md5words hashstarting (encodedwith as base64) for specified textcapital chars.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringMiddle#stringLeft]\(textString, i_starttext, i_size)
Returns a substringstring with the requested number of characters, starting from the original stringleft.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringMiddleWords#stringLeftWords]\(text, i_start, numberof_words)
Returns a substring the number of words, starting from the original stringleft.{td}{tr}{tbody}{tbody}{tr}{td}[NumberString]{td}{td}[#stringPatternCount#stringMD5HashBase16]\(textString, searchString)
Returns the number of times searchString appears in textStringmd5 hash (encoded as base16) for specified text.{td}{tr}{tbody}{tbody}{tr}{td}[NumberString]{td}{td}[#stringPosition#stringMD5HashBase64]\(textString, searchString, i_start, i_occurrence)
Returns the positionmd5 ofhash the(encoded stringas tobase64) seach for, from a certain start position and occurrencespecified text.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringReplace#stringMiddle]\(text, searchi_textstart, replacementi_textsize)
ReplacesReturns a portionsubstring from ofthe aoriginal string with replacement text.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringReplaceTags#stringMiddleWords]\(text, foundset_or_record_or_formi_start, numberof_words)
Returns thea textsubstring withfrom %%tags%%the replaced, based on provided record or foundset or formoriginal string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringRight#stringPBKDF2Hash]\(textString, i_size)
Returns a string with the requestedPBKDF2 numberhash offor characters, starting from the rightspecified text.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringRightWords#stringPBKDF2Hash]\(texttextString, numberof_wordsiterations)
Returns the numberPBKDF2 ofhash words,for starting from the rightspecified text.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#stringToNumber#stringPatternCount]\(textStringtext, toSearchFor)
FiltersReturns charactersthe outnumber of fromtimes asearchString stringappears and leaves digits, returns the numberin textString.{td}{tr}{tbody}{tbody}{tr}{td}[StringNumber]{td}{td}[#stringTrim#stringPosition]\(textString, toSearchFor, i_start, i_occurrence)
Returns the stringposition withoutof leadingthe or trailing spacesstring to search for, from a certain start position and occurrence.{td}{tr}{tbody}{tbody}{tr}{td}[NumberString]{td}{td}[#stringWordCount#stringReplace]\(textStringtext, search_text, replacement_text)
ReturnsReplaces thea numberportion of a wordsstring inwith thereplacement text string.{td}{tr}{tbody}{tbody}{tr}{td}[DateString]{td}{td}[#timestampToDate#stringReplaceTags]\(datetext, scriptable)
Returns a datestamp from the timestamp (sets hours,minutes,seconds and milliseconds to 0)the text with %%tags%% replaced, based on provided record or foundset or form.{td}{tr}{tbody}{tabletbody}\\ 

{table:id=function|class=servoy sDetail{tr}{colgrouptd}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th[String]{td}{td}[#stringRight]\(text, i_size)
Returns a string with the requested number of characters, starting from the right.{td}{tr}{tbody:id=dateFormat|class=node}{tbody}{tr:id=name}{td}h6.dateFormat[String]{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]{span}{span:id=iets|style=float: left; font-weight: bold;}dateFormat{span}{span:id=iets|style=float: left;}\(date, format){span}{td}{tr}{tr:id=des}{td}{sub-section:dateFormat_des|text=|trigger=button}{sub-section}{sub-section:dateFormat_des|trigger=none|class=sIndent}Format a date object to a text representation or a parses a datestring to a date object.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:dateFormat_snc|text=|trigger=button}{sub-section}{sub-section:dateFormat_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:dateFormat_prs|text=|trigger=button}{sub-section}{sub-section:dateFormat_prs|trigger=none|class=sIndent}\{[Object]} date -- the date as text or date object
\{[Object]} format -- the format to output or parse the to date
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:dateFormat_ret|text=|trigger=button}{sub-section}{sub-section:dateFormat_ret|trigger=none|class=sIndent}[Object] -- the date as text or date object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:dateFormat_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:dateFormat_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:dateFormat_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:dateFormat_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:dateFormat_samtd}[#stringRightWords]\(text, numberof_words)
Returns the number of words, starting from the right.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#stringToNumber]\(textString)
Filters characters out of from a string and leaves digits, returns the number.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#stringTrim]\(textString)
Returns the string without leading or trailing spaces.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#stringWordCount]\(text)
Returns the number of words in the text string.{td}{tr}{tbody}{tbody}{tr}{td}[Date]{td}{td}[#timestampToDate]\(date)
Returns a datestamp from the timestamp (sets hours,minutes,seconds and milliseconds to 0).{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#validatePBKDF2Hash]\(password, hash)
Validates the given password against the given hash.{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=dateFormat-Date_String|class=node}{tr:id=name}{td}h6.dateFormat{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}dateFormat{span}{span:id=iets|style=float: left;}\(date, format){span}{td}{tr}{tr:id=des}{td}{sub-section:dateFormat-Date_String_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:dateFormat-Date_String_samdes|trigger=none}{code:language=javascript}
var parsedDate = utils.dateFormat(datestring,'EEE, d MMM yyyy HH:mm:ss'); 

var formattedDateString = utils.dateFormat(dateobject,'EEE, d MMM yyyy HH:mm:ss');
{code}{sub-section}{div|class=sIndent}Format a date object to a text representation.{sub-section}{td}{tr}{trbuilder-show:classpermission=lastDetailRowedit}{tdtr:id=snc}{td}{tr}{tbody}{tbody:id=getUnicodeCharacter|class=node}{tr:id=name}{td}h6.getUnicodeCharacter{td}{tr*Since*\\{sub-section:dateFormat-Date_String_snc|text=|trigger=button}{sub-section}{sub-section:dateFormat-Date_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=sigprs}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getUnicodeCharacter{span}{span:id=iets|style=float: left;}\(unicodeCharacterNumber){span}{td}{tr}{tr:id=des}{td}{sub-section:getUnicodeCharacter_des*Parameters*\\{sub-section:dateFormat-Date_String_prs|text=|trigger=button}{sub-section}{sub-section:getUnicodeCharacter_desdateFormat-Date_String_prs|trigger=none|class=sIndent}Returns a string containing the character for the unicode number.\{[Date]} date -- the date
\{[String]} format -- the format to output
{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:getUnicodeCharacter_sncdateFormat-Date_String_ret|text=|trigger=button}{sub-section}{sub-section:getUnicodeCharacter_sncdateFormat-Date_String_ret|trigger=none|class=sIndent} Replace with version info[String] -- the date as text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=prssee}{td}*ParametersAlso see*\\{sub-section:getUnicodeCharacter_prsdateFormat-Date_String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getUnicodeCharacter_prsdateFormat-Date_String_see|trigger=none|class=sIndent}\{[Number]} unicodeCharacterNumber -- the number indicating the unicode character
{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=retlink}{td}*ReturnsExternal links*\\{sub-section:getUnicodeCharacter_retdateFormat-Date_String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getUnicodeCharacter_retdateFormat-Date_String_link|trigger=none|class=sIndent}[String] -- a string containing the unicode character{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:getUnicodeCharacter_seedateFormat-Date_String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getUnicodeCharacter_seedateFormat-Date_String_sam|trigger=none}{code:language=javascript}
var formattedDateString = utils.dateFormat(dateobject,'EEE, d MMM yyyy HH:mm:ss');
{code}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linktr:class=lastDetailRow}{td}{td}*External links*\\{sub-section:getUnicodeCharacter_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getUnicodeCharacter_link|trigger=none}{sub-section}{div}{{tr}{tbody}{tbody:id=getUnicodeCharacter|class=node}{tr:id=name}{td}h6.getUnicodeCharacter{td}{tr}{builder-show}{tr:id=samsig}{td}*Sample*\\{sub-section:getUnicodeCharacter_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getUnicodeCharacter_sam|trigger=none}{code:language=javascript}
//returns a big dot
var dot = utils.getUnicodeCharacter(9679);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=hasRecords|class=node}{tr:id=name}{td}h6.hasRecords{td}{tr}{tr:id=sig}{td}{span:style=float:{span:style=float: left; margin-right: 5px;}[BooleanString]{span}{span:id=iets|style=float: left; font-weight: bold;}hasRecordsgetUnicodeCharacter{span}{span:id=iets|style=float: left;}\(foundset_or_record, \[qualifiedRelationString\]unicodeCharacterNumber){span}{td}{tr}{tr:id=des}{td}{sub-section:hasRecordsgetUnicodeCharacter_des|text=|trigger=button}{sub-section}{sub-section:hasRecordsgetUnicodeCharacter_des|trigger=none|class=sIndent}Returns truea string ifcontaining the (related)foundset exists and has records.
Another use is, to pass a record and qualified relations string to test multiple relations/foundset at oncecharacter for the unicode number.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:hasRecordsgetUnicodeCharacter_snc|text=|trigger=button}{sub-section}{sub-section:hasRecordsgetUnicodeCharacter_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:hasRecordsgetUnicodeCharacter_prs|text=|trigger=button}{sub-section}{sub-section:hasRecordsgetUnicodeCharacter_prs|trigger=none|class=sIndent}foundset_or_record -- the foundset or record to be tested
\[qualifiedRelationString\] \{[Number]} unicodeCharacterNumber -- the qualifiednumber relationindicating stringthe to reach a related foundset if a record is passes as first paramter
unicode character
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:hasRecordsgetUnicodeCharacter_ret|text=|trigger=button}{sub-section}{sub-section:hasRecordsgetUnicodeCharacter_ret|trigger=none|class=sIndent}[BooleanString] -- true if exists a string containing the unicode character{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:hasRecordsgetUnicodeCharacter_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:hasRecordsgetUnicodeCharacter_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:hasRecordsgetUnicodeCharacter_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:hasRecordsgetUnicodeCharacter_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:hasRecordsgetUnicodeCharacter_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:hasRecordsgetUnicodeCharacter_sam|trigger=none}{code:language=javascript}
//testreturns a the orders_to_orderitems foundset 
if (elements.customer_id.hasRecords(orders_to_orderitems))
{
	//do work on relatedFoundSet
}
//test the orders_to_orderitems.orderitems_to_products foundset to be reached from the current record 
//if (elements.customer_id.hasRecords(foundset.getSelectedRecord(),'orders_to_orderitems.orderitems_to_products'))
//{
//	//do work on deeper relatedFoundSet
//}
big dot
var dot = utils.getUnicodeCharacter(9679);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isMondayFirstDayOfWeekhasRecords-JSFoundSet|class=node}{tr:id=name}{td}h6.isMondayFirstDayOfWeekhasRecords{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}isMondayFirstDayOfWeekhasRecords{span}{span:id=iets|style=float: left;}\(foundset){span}{td}{tr}{tr:id=des}{td}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_des|text=|trigger=button}{sub-section}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_des|trigger=none|class=sIndent}Returns true whenif Monday is the first day of the week for your current locale setting.the (related)foundset exists and has records.
Another use is, to pass a record and qualified relations string to test multiple relations/foundset at once{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_snc|text=|trigger=button}{sub-section}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_prs|text=|trigger=button}{sub-section}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_prs|trigger=none|class=sIndent}\{[JSFoundSet]} foundset -- the foundset to be tested
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_ret|text=|trigger=button}{sub-section}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_ret|trigger=none|class=sIndent}[Boolean] -- true if Monday is first day of the week in current localeexists{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:isMondayFirstDayOfWeekhasRecords-JSFoundSet_sam|trigger=none}{code:language=javascript}
//test the orders_to_orderitems foundset 
if (utils.isMondayFirstDayOfWeek(elements.customer_id.hasRecords(orders_to_orderitems))
{
	//ado date calculation
work on relatedFoundSet
}
//test the orders_to_orderitems.orderitems_to_products foundset to be reached from the current record 
//if (elements.customer_id.hasRecords(foundset.getSelectedRecord(),'orders_to_orderitems.orderitems_to_products'))
//{
//	//do work on deeper relatedFoundSet
//}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=numberFormathasRecords-JSRecord_String|class=node}{tr:id=name}{td}h6.numberFormathasRecords{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[StringBoolean]{span}{span:id=iets|style=float: left; font-weight: bold;}numberFormathasRecords{span}{span:id=iets|style=float: left;}\(numberrecord, digitsOrFormatrelationString){span}{td}{tr}{tr:id=des}{td}{sub-section:numberFormathasRecords-JSRecord_String_des|text=|trigger=button}{sub-section}{sub-section:numberFormathasRecords-JSRecord_String_des|trigger=none|class=sIndent}Format a number to specification (or to have a defined fraction).Returns true if the (related)foundset exists and has records.
Another use is, to pass a record and qualified relations string to test multiple relations/foundset at once{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:numberFormathasRecords-JSRecord_String_snc|text=|trigger=button}{sub-section}{sub-section:numberFormathasRecords-JSRecord_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:numberFormathasRecords-JSRecord_String_prs|text=|trigger=button}{sub-section}{sub-section:numberFormathasRecords-JSRecord_String_prs|trigger=none|class=sIndent}\{[ObjectJSRecord]} numberrecord -- theA numberJSRecord to formattest.
\{[ObjectString]} digitsOrFormatrelationString -- theThe formatrelation orname.
digits
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:numberFormathasRecords-JSRecord_String_ret|text=|trigger=button}{sub-section}{sub-section:numberFormathasRecords-JSRecord_String_ret|trigger=none|class=sIndent}[StringBoolean] -- true if the resultingfoundset/relation number in texthas records.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:numberFormathasRecords-JSRecord_String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:numberFormathasRecords-JSRecord_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:numberFormathasRecords-JSRecord_String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:numberFormathasRecords-JSRecord_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:numberFormathasRecords-JSRecord_String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:numberFormathasRecords-JSRecord_String_sam|trigger=none}{code:language=javascript}
var//test textalNumber = utils.numberFormat(16.749, 2); //returns 16.75
var textalNumber2 = utils.numberFormat(100006.749, '#,###.00'); //returns 100,006.75the orders_to_orderitems foundset 
if (elements.customer_id.hasRecords(orders_to_orderitems))
{
	//do work on relatedFoundSet
}
//test the orders_to_orderitems.orderitems_to_products foundset to be reached from the current record 
//if (elements.customer_id.hasRecords(foundset.getSelectedRecord(),'orders_to_orderitems.orderitems_to_products'))
//{
//	//do work on deeper relatedFoundSet
//}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringEscapeMarkupisMondayFirstDayOfWeek|class=node}{tr:id=name}{td}h6.stringEscapeMarkupisMondayFirstDayOfWeek{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[StringBoolean]{span}{span:id=iets|style=float: left; font-weight: bold;}stringEscapeMarkupisMondayFirstDayOfWeek{span}{span:id=iets|style=float: left;}\(textString, \[escapeSpaces\], \[convertToHtmlUnicodeEscapes\]){span}{td}{tr}{tr:id=des}{td}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_des|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_des|trigger=none|class=sIndent}Returns true when Monday is the escapedfirst markupday text (HTML/XML)of the week for your current locale setting.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_snc|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_prs|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_prs|trigger=none|class=sIndent}textString -- the text to process
\{[Boolean]} \[escapeSpaces\] -- indicating to escape spaces
\{[Boolean]} \[convertToHtmlUnicodeEscapes\] -- indicating to use unicode escapes
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_ret|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_ret|trigger=none|class=sIndent}[StringBoolean] -- the escaped texttrue if Monday is first day of the week in current locale{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkupisMondayFirstDayOfWeek_sam|trigger=none}{code:language=javascript}
var escapedText = if(utils.stringEscapeMarkup('<html><body>escape me</body></html>')
isMondayFirstDayOfWeek())
{
	//a date calculation
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringFormatnumberFormat-Number_Number|class=node}{tr:id=name}{td}h6.stringFormatnumberFormat{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringFormatnumberFormat{span}{span:id=iets|style=float: left;}\(text_to_formatnumber, parameters_arraydigits){span}{td}{tr}{tr:id=des}{td}{sub-section:stringFormatnumberFormat-Number_Number_des|text=|trigger=button}{sub-section}{sub-section:stringFormatnumberFormat-Number_Number_des|trigger=none|class=sIndent}FormatsFormat a stringnumber according to formathave specifiersa anddefined argumentsfraction.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringFormatnumberFormat-Number_Number_snc|text=|trigger=button}{sub-section}{sub-section:stringFormatnumberFormat-Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringFormatnumberFormat-Number_Number_prs|text=|trigger=button}{sub-section}{sub-section:stringFormatnumberFormat-Number_Number_prs|trigger=none|class=sIndent}\{[StringNumber]} text_to_formatnumber -- the textnumber to format
\{[ObjectNumber]} parameters_arraydigits -- thenr arrayof with parametersdigits
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringFormatnumberFormat-Number_Number_ret|text=|trigger=button}{sub-section}{sub-section:stringFormatnumberFormat-Number_Number_ret|trigger=none|class=sIndent}[String] -- the formattedresulting number in text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringFormatnumberFormat-Number_Number_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringFormatnumberFormat-Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringFormatnumberFormat-Number_Number_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringFormatnumberFormat-Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringFormatnumberFormat-Number_Number_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringFormatnumberFormat-Number_Number_sam|trigger=none}{code:language=javascript}
//var thetextalNumber  format specifier has the syntax: %[argument_index$][flags][width][.precision]conversion
// argument index is 1$, 2$ ...
// flags is a set of characters that modify the output format
// typical values: '+'(The result will always include a sign), ','(The result will include locale-specific grouping separators)
// width is a non-negative decimal integer indicating the minimum number of characters to be written to the output
// precision is a non-negative decimal integer usually used to restrict the number of characters
// conversion is a character indicating how the argument should be formatted
// typical conversion values: b(boolean), s(string), c(character), d(decimal integer), f(floating number), t(prefix for date and time)
// Date/Time Conversions (used after 't' prefix): 
		// 'H' 	Hour of the day for the 24-hour clock, formatted as two digits with a leading zero as necessary i.e. 00 - 23. 
		// 'I' 	Hour for the 12-hour clock, formatted as two digits with a leading zero as necessary, i.e. 01 - 12. 
		// 'k' 	Hour of the day for the 24-hour clock, i.e. 0 - 23. 
		// 'l' 	Hour for the 12-hour clock, i.e. 1 - 12. 
		// 'M' 	Minute within the hour formatted as two digits with a leading zero as necessary, i.e. 00 - 59. 
		// 'S' 	Seconds within the minute, formatted as two digits with a leading zero as necessary, i.e. 00 - 60 ("60" is a special value required to support leap seconds).
		// 'L' 	Millisecond within the second formatted as three digits with leading zeros as necessary, i.e. 000 - 999.
		// 'p' 	Locale-specific morning or afternoon marker in lower case, e.g."am" or "pm". Use of the conversion prefix 'T' forces this output to upper case. 
		// 'z' 	RFC 822 style numeric time zone offset from GMT, e.g. -0800.
		// 'Z' 	A string representing the abbreviation for the time zone.
		// 'B' 	Locale-specific full month name, e.g. "January", "February".
		// 'b' 	Locale-specific abbreviated month name, e.g. "Jan", "Feb". 
		// 'h' 	Same as 'b'. 
		// 'A' 	Locale-specific full name of the day of the week, e.g. "Sunday", "Monday" 
		// 'a' 	Locale-specific short name of the day of the week, e.g. "Sun", "Mon" 
		// 'C' 	Four-digit year divided by 100, formatted as two digits with leading zero as necessary, i.e. 00 - 99 
		// 'Y' 	Year, formatted as at least four digits with leading zeros as necessary, e.g. 0092 equals 92 CE for the Gregorian calendar. 
		// 'y' 	Last two digits of the year, formatted with leading zeros as necessary, i.e. 00 - 99.
		// 'j' 	Day of year, formatted as three digits with leading zeros as necessary, e.g. 001 - 366 for the Gregorian calendar. 
		// 'm' 	Month, formatted as two digits with leading zeros as necessary, i.e. 01 - 13. 
		// 'd' 	Day of month, formatted as two digits with leading zeros as necessary, i.e. 01 - 31 
		// 'e' 	Day of month, formatted as two digits, i.e. 1 - 31.

		// common compositions for date/time conversion
		// 'R' 	Time formatted for the 24-hour clock as "%tH:%tM" 
		// 'T' 	Time formatted for the 24-hour clock as "%tH:%tM:%tS". 
		// 'r' 	Time formatted for the 12-hour clock as "%tI:%tM:%tS %Tp". The location of the morning or afternoon marker ('%Tp') may be locale-dependent. 
		// 'D' 	Date formatted as "%tm/%td/%ty". 
		// 'F' 	ISO 8601 complete date formatted as "%tY-%tm-%td". 
		// 'c' 	Date and time formatted as "%ta %tb %td %tT %tZ %tY", e.g. "Sun Jul 20 16:17:00 EDT 1969".

utils.stringFormat('%s Birthday: %2$tm %2$te,%2$tY',new Array('My',new Date(2009,0,1))) // returns My Birthday: 01 1,2009
utils.stringFormat('The time is: %1$tH:%1$tM:%1$tS',new Array(new Date(2009,0,1,12,0,0))) // returns The time is: 12:00:00
utils.stringFormat('My %s: %2$.0f, my float: %2$.2f',new Array('integer',10)) // returns My integer: 10, my float: 10.00
utils.stringFormat('Today is: %1$tc',new Array(new Date())) // returns current date/time as:  Today is: Fri Feb 20 14:15:54 EET 2009
utils.stringFormat('Today is: %tF',new Array(new Date())) // returns current date as: Today is: 2009-02-20= utils.numberFormat(16.749, 2); //returns 16.75
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=numberFormat-Number_String|class=node}{tr:id=name}{td}h6.numberFormat{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}numberFormat{span}{span:id=iets|style=float: left;}\(number, format){span}{td}{tr}{tr:id=des}{td}{sub-section:numberFormat-Number_String_des|text=|trigger=button}{sub-section}{sub-section:numberFormat-Number_String_des|trigger=none|class=sIndent}Format a number to specification.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:numberFormat-Number_String_snc|text=|trigger=button}{sub-section}{sub-section:numberFormat-Number_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:numberFormat-Number_String_prs|text=|trigger=button}{sub-section}{sub-section:numberFormat-Number_String_prs|trigger=none|class=sIndent}\{[Number]} number -- the number to format
\{[String]} format -- the format
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:numberFormat-Number_String_ret|text=|trigger=button}{sub-section}{sub-section:numberFormat-Number_String_ret|trigger=none|class=sIndent}[String] -- the resulting number in text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:numberFormat-Number_String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:numberFormat-Number_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:numberFormat-Number_String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:numberFormat-Number_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:numberFormat-Number_String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:numberFormat-Number_String_sam|trigger=none}{code:language=javascript}
var textalNumber2 = utils.numberFormat(100006.749, '#,###.00'); //returns 100,006.75
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=parseDate|class=node}{tr:id=name}{td}h6.parseDate{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Date]{span}{span:id=iets|style=float: left; font-weight: bold;}parseDate{span}{span:id=iets|style=float: left;}\(date, format){span}{td}{tr}{tr:id=des}{td}{sub-section:parseDate_des|text=|trigger=button}{sub-section}{sub-section:parseDate_des|trigger=none|class=sIndent}Parse a string to a date object.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:parseDate_snc|text=|trigger=button}{sub-section}{sub-section:parseDate_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:parseDate_prs|text=|trigger=button}{sub-section}{sub-section:parseDate_prs|trigger=none|class=sIndent}\{[String]} date -- the date as text
\{[String]} format -- the format to parse the to date
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:parseDate_ret|text=|trigger=button}{sub-section}{sub-section:parseDate_ret|trigger=none|class=sIndent}[Date] -- the date as date object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:parseDate_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:parseDate_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:parseDate_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:parseDate_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:parseDate_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:parseDate_sam|trigger=none}{code:language=javascript}
var parsedDate = utils.parseDate(datestring,'EEE, d MMM yyyy HH:mm:ss');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringEscapeMarkup-String|class=node}{tr:id=name}{td}h6.stringEscapeMarkup{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringEscapeMarkup{span}{span:id=iets|style=float: left;}\(textString){span}{td}{tr}{tr:id=des}{td}{sub-section:stringEscapeMarkup-String_des|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_des|trigger=none|class=sIndent}Returns the escaped markup text (HTML/XML).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringEscapeMarkup-String_snc|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringEscapeMarkup-String_prs|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_prs|trigger=none|class=sIndent}\{[String]} textString -- the text to process
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringEscapeMarkup-String_ret|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_ret|trigger=none|class=sIndent}[String] -- the escaped text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringEscapeMarkup-String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringEscapeMarkup-String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringEscapeMarkup-String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_sam|trigger=none}{code:language=javascript}
var escapedText = utils.stringEscapeMarkup('<html><body>escape me</body></html>')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringEscapeMarkup-String_Boolean|class=node}{tr:id=name}{td}h6.stringEscapeMarkup{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringEscapeMarkup{span}{span:id=iets|style=float: left;}\(textString, escapeSpaces){span}{td}{tr}{tr:id=des}{td}{sub-section:stringEscapeMarkup-String_Boolean_des|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_des|trigger=none|class=sIndent}Returns the escaped markup text (HTML/XML).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringEscapeMarkup-String_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringEscapeMarkup-String_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_prs|trigger=none|class=sIndent}\{[String]} textString -- the text to process
\{[Boolean]} escapeSpaces -- indicating to escape spaces
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringEscapeMarkup-String_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_ret|trigger=none|class=sIndent}[String] -- the escaped text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringEscapeMarkup-String_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringEscapeMarkup-String_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringEscapeMarkup-String_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_Boolean_sam|trigger=none}{code:language=javascript}
var escapedText = utils.stringEscapeMarkup('<html><body>escape me</body></html>')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringEscapeMarkup-String_Boolean_Boolean|class=node}{tr:id=name}{td}h6.stringEscapeMarkup{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringEscapeMarkup{span}{span:id=iets|style=float: left;}\(textString, escapeSpaces, convertToHtmlUnicodeEscapes){span}{td}{tr}{tr:id=des}{td}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_des|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_des|trigger=none|class=sIndent}Returns the escaped markup text (HTML/XML).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringEscapeMarkup-String_Boolean_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringEscapeMarkup-String_Boolean_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_prs|trigger=none|class=sIndent}\{[String]} textString -- the text to process
\{[Boolean]} escapeSpaces -- indicating to escape spaces
\{[Boolean]} convertToHtmlUnicodeEscapes -- indicating to use unicode escapes
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringEscapeMarkup-String_Boolean_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_ret|trigger=none|class=sIndent}[String] -- the escaped text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringEscapeMarkup-String_Boolean_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringEscapeMarkup-String_Boolean_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringEscapeMarkup-String_Boolean_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringEscapeMarkup-String_Boolean_Boolean_sam|trigger=none}{code:language=javascript}
var escapedText = utils.stringEscapeMarkup('<html><body>escape me</body></html>')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringFormat|class=node}{tr:id=name}{td}h6.stringFormat{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringFormat{span}{span:id=iets|style=float: left;}\(text_to_format, parameters){span}{td}{tr}{tr:id=des}{td}{sub-section:stringFormat_des|text=|trigger=button}{sub-section}{sub-section:stringFormat_des|trigger=none|class=sIndent}Formats a string according to format specifiers and arguments.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringFormat_snc|text=|trigger=button}{sub-section}{sub-section:stringFormat_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringFormat_prs|text=|trigger=button}{sub-section}{sub-section:stringFormat_prs|trigger=none|class=sIndent}\{[String]} text_to_format -- the text to format
\{[Object]\[]} parameters -- the array with parameters
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringFormat_ret|text=|trigger=button}{sub-section}{sub-section:stringFormat_ret|trigger=none|class=sIndent}[String] -- the formatted text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringFormat_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringFormat_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringFormat_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringFormat_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringFormat_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringFormat_sam|trigger=none}{code:language=javascript}
// the  format specifier has the syntax: %[argument_index$][flags][width][.precision]conversion
// argument index is 1$, 2$ ...
// flags is a set of characters that modify the output format
// typical values: '+'(The result will always include a sign), ','(The result will include locale-specific grouping separators)
// width is a non-negative decimal integer indicating the minimum number of characters to be written to the output
// precision is a non-negative decimal integer usually used to restrict the number of characters
// conversion is a character indicating how the argument should be formatted
// typical conversion values: b(boolean), s(string), c(character), d(decimal integer), f(floating number), t(prefix for date and time)
// Date/Time Conversions (used after 't' prefix): 
		// 'H' 	Hour of the day for the 24-hour clock, formatted as two digits with a leading zero as necessary i.e. 00 - 23. 
		// 'I' 	Hour for the 12-hour clock, formatted as two digits with a leading zero as necessary, i.e. 01 - 12. 
		// 'k' 	Hour of the day for the 24-hour clock, i.e. 0 - 23. 
		// 'l' 	Hour for the 12-hour clock, i.e. 1 - 12. 
		// 'M' 	Minute within the hour formatted as two digits with a leading zero as necessary, i.e. 00 - 59. 
		// 'S' 	Seconds within the minute, formatted as two digits with a leading zero as necessary, i.e. 00 - 60 ("60" is a special value required to support leap seconds).
		// 'L' 	Millisecond within the second formatted as three digits with leading zeros as necessary, i.e. 000 - 999.
		// 'p' 	Locale-specific morning or afternoon marker in lower case, e.g."am" or "pm". Use of the conversion prefix 'T' forces this output to upper case. 
		// 'z' 	RFC 822 style numeric time zone offset from GMT, e.g. -0800.
		// 'Z' 	A string representing the abbreviation for the time zone.
		// 'B' 	Locale-specific full month name, e.g. "January", "February".
		// 'b' 	Locale-specific abbreviated month name, e.g. "Jan", "Feb". 
		// 'h' 	Same as 'b'. 
		// 'A' 	Locale-specific full name of the day of the week, e.g. "Sunday", "Monday" 
		// 'a' 	Locale-specific short name of the day of the week, e.g. "Sun", "Mon" 
		// 'C' 	Four-digit year divided by 100, formatted as two digits with leading zero as necessary, i.e. 00 - 99 
		// 'Y' 	Year, formatted as at least four digits with leading zeros as necessary, e.g. 0092 equals 92 CE for the Gregorian calendar. 
		// 'y' 	Last two digits of the year, formatted with leading zeros as necessary, i.e. 00 - 99.
		// 'j' 	Day of year, formatted as three digits with leading zeros as necessary, e.g. 001 - 366 for the Gregorian calendar. 
		// 'm' 	Month, formatted as two digits with leading zeros as necessary, i.e. 01 - 13. 
		// 'd' 	Day of month, formatted as two digits with leading zeros as necessary, i.e. 01 - 31 
		// 'e' 	Day of month, formatted as two digits, i.e. 1 - 31.

		// common compositions for date/time conversion
		// 'R' 	Time formatted for the 24-hour clock as "%tH:%tM" 
		// 'T' 	Time formatted for the 24-hour clock as "%tH:%tM:%tS". 
		// 'r' 	Time formatted for the 12-hour clock as "%tI:%tM:%tS %Tp". The location of the morning or afternoon marker ('%Tp') may be locale-dependent. 
		// 'D' 	Date formatted as "%tm/%td/%ty". 
		// 'F' 	ISO 8601 complete date formatted as "%tY-%tm-%td". 
		// 'c' 	Date and time formatted as "%ta %tb %td %tT %tZ %tY", e.g. "Sun Jul 20 16:17:00 EDT 1969".

utils.stringFormat('%s Birthday: %2$tm %2$te,%2$tY',new Array('My',new Date(2009,0,1))) // returns My Birthday: 01 1,2009
utils.stringFormat('The time is: %1$tH:%1$tM:%1$tS',new Array(new Date(2009,0,1,12,0,0))) // returns The time is: 12:00:00
utils.stringFormat('My %s: %2$.0f, my float: %2$.2f',new Array('integer',10)) // returns My integer: 10, my float: 10.00
utils.stringFormat('Today is: %1$tc',new Array(new Date())) // returns current date/time as:  Today is: Fri Feb 20 14:15:54 EET 2009
utils.stringFormat('Today is: %tF',new Array(new Date())) // returns current date as: Today is: 2009-02-20
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringIndexReplace-String_Number_Number_String|class=node}{tr:id=name}{td}h6.stringIndexReplace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringIndexReplace{span}{span:id=iets|style=float: left;}\(text, i_start, i_size, replacement_text){span}{td}{tr}{tr:id=des}{td}{sub-section:stringIndexReplace-String_Number_Number_String_des|text=|trigger=button}{sub-section}{sub-section:stringIndexReplace-String_Number_Number_String_des|trigger=none|class=sIndent}Replaces a portion of a string with replacement text from a specified index.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringIndexReplace-String_Number_Number_String_snc|text=|trigger=button}{sub-section}{sub-section:stringIndexReplace-String_Number_Number_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringIndexReplace-String_Number_Number_String_prs|text=|trigger=button}{sub-section}{sub-section:stringIndexReplace-String_Number_Number_String_prs|trigger=none|class=sIndent}\{[String]} text -- the text to process
\{[Number]} i_start -- the start index to work from
\{[Number]} i_size -- the size of the text to replace
\{[String]} replacement_text -- the replacement text
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringIndexReplace-String_Number_Number_String_ret|text=|trigger=button}{sub-section}{sub-section:stringIndexReplace-String_Number_Number_String_ret|trigger=none|class=sIndent}[String] -- the changed text string{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringIndexReplace-String_Number_Number_String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringIndexReplace-String_Number_Number_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringIndexReplace-String_Number_Number_String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringIndexReplace-String_Number_Number_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringIndexReplace-String_Number_Number_String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringIndexReplace-String_Number_Number_String_sam|trigger=none}{code:language=javascript}
//returns 'this was a test'
var retval = utils.stringIndexReplace('this is a test',6,2,'was');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringInitCap|class=node}{tr:id=name}{td}h6.stringInitCap{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringInitCap{span}{span:id=iets|style=float: left;}\(text){span}{td}{tr}{tr:id=des}{td}{sub-section:stringInitCap_des|text=|trigger=button}{sub-section}{sub-section:stringInitCap_des|trigger=none|class=sIndent}Returns all words starting with capital chars.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringInitCap_snc|text=|trigger=button}{sub-section}{sub-section:stringInitCap_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringInitCap_prs|text=|trigger=button}{sub-section}{sub-section:stringInitCap_prs|trigger=none|class=sIndent}\{[String]} text -- the text to process
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringInitCap_ret|text=|trigger=button}{sub-section}{sub-section:stringInitCap_ret|trigger=none|class=sIndent}[String] -- the changed text{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringInitCap_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringInitCap_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringInitCap_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringInitCap_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringInitCap_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringInitCap_sam|trigger=none}{code:language=javascript}
//returns 'This Is A Test'
var retval = utils.stringInitCap('This is A test');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringLeft|class=node}{tr:id=name}{td}h6.stringLeft{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringLeft{span}{span:id=iets|style=float: left;}\(text, i_size){span}{td}{tr}{tr:id=des}{td}{sub-section:stringLeft_des|text=|trigger=button}{sub-section}{sub-section:stringLeft_des|trigger=none|class=sIndent}Returns a string with the requested number of characters, starting from the left.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringLeft_snc|text=|trigger=button}{sub-section}{sub-section:stringLeft_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringLeft_prs|text=|trigger=button}{sub-section}{sub-section:stringLeft_prs|trigger=none|class=sIndent}\{[String]} text -- the text to process
\{[Number]} i_size -- the size of the text to return
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringLeft_ret|text=|trigger=button}{sub-section}{sub-section:stringLeft_ret|trigger=none|class=sIndent}[String] -- the result text string{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringLeft_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeft_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringLeft_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeft_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringLeft_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeft_sam|trigger=none}{code:language=javascript}
//returns 'this i'
var retval = utils.stringLeft('this is a test',6);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringIndexReplacestringLeftWords|class=node}{tr:id=name}{td}h6.stringIndexReplacestringLeftWords{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringIndexReplacestringLeftWords{span}{span:id=iets|style=float: left;}\(textStringtext, i_start, i_size, replacement_textnumberof_words){span}{td}{tr}{tr:id=des}{td}{sub-section:stringIndexReplacestringLeftWords_des|text=|trigger=button}{sub-section}{sub-section:stringIndexReplacestringLeftWords_des|trigger=none|class=sIndent}ReplacesReturns athe portionnumber of a string with replacement text from a specfied indexwords, starting from the left.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringIndexReplacestringLeftWords_snc|text=|trigger=button}{sub-section}{sub-section:stringIndexReplacestringLeftWords_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringIndexReplacestringLeftWords_prs|text=|trigger=button}{sub-section}{sub-section:stringIndexReplacestringLeftWords_prs|trigger=none|class=sIndent}\{[ObjectString]} textStringtext -- the text to process
\{[ObjectNumber]} inumberof_startwords -- the start index to work from
\{[Object]} i_size -- the size of the text to replace
\{[Object]} replacement_text -- the replacement text to return
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringIndexReplacestringLeftWords_ret|text=|trigger=button}{sub-section}{sub-section:stringIndexReplacestringLeftWords_ret|trigger=none|class=sIndent}[String] -- the changed text stringstring with number of words form the left{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringIndexReplacestringLeftWords_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringIndexReplacestringLeftWords_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringIndexReplacestringLeftWords_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringIndexReplacestringLeftWords_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringIndexReplacestringLeftWords_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringIndexReplacestringLeftWords_sam|trigger=none}{code:language=javascript}
//returns 'this wasis a test'
var retval = utils.stringIndexReplacestringLeftWords('this is a test',6,2,'was'3);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringInitCapstringMD5HashBase16|class=node}{tr:id=name}{td}h6.stringInitCapstringMD5HashBase16{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringInitCapstringMD5HashBase16{span}{span:id=iets|style=float: left;}\(texttextString){span}{td}{tr}{tr:id=des}{td}{sub-section:stringInitCapstringMD5HashBase16_des|text=|trigger=button}{sub-section}{sub-section:stringInitCapstringMD5HashBase16_des|trigger=none|class=sIndent}Returns all words starting with capital chars. the md5 hash (encoded as base16) for specified text.

NOTE: MD5 (Message\-Digest Algorythm 5) is a hash function with a 128\-bit hash value, for more info see: http://en.wikipedia.org/wiki/MD5{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringInitCapstringMD5HashBase16_snc|text=|trigger=button}{sub-section}{sub-section:stringInitCapstringMD5HashBase16_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringInitCapstringMD5HashBase16_prs|text=|trigger=button}{sub-section}{sub-section:stringInitCapstringMD5HashBase16_prs|trigger=none|class=sIndent}\{[ObjectString]} texttextString -- the text to process
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringInitCapstringMD5HashBase16_ret|text=|trigger=button}{sub-section}{sub-section:stringInitCapstringMD5HashBase16_ret|trigger=none|class=sIndent}[String] -- the changedresulting texthashString{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringInitCapstringMD5HashBase16_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringInitCapstringMD5HashBase16_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringInitCapstringMD5HashBase16_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringInitCapstringMD5HashBase16_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringInitCapstringMD5HashBase16_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringInitCapstringMD5HashBase16_sam|trigger=none}{code:language=javascript}
//returns 'This Is A Test'
var retvalhashed_password = utils.stringInitCap('This is A test');stringMD5HashBase16(user_password)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringLeftstringMD5HashBase64|class=node}{tr:id=name}{td}h6.stringLeftstringMD5HashBase64{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringLeftstringMD5HashBase64{span}{span:id=iets|style=float: left;}\(textString, i_size){span}{td}{tr}{tr:id=des}{td}{sub-section:stringLeftstringMD5HashBase64_des|text=|trigger=button}{sub-section}{sub-section:stringLeftstringMD5HashBase64_des|trigger=none|class=sIndent}Returns the md5 hash (encoded as base64) for specified text.

NOTE: MD5 (Message\-Digest Algorythm 5) is a stringhash function with the requested number of characters, starting from the left.a 128\-bit hash value, for more info see: http://en.wikipedia.org/wiki/MD5{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringLeftstringMD5HashBase64_snc|text=|trigger=button}{sub-section}{sub-section:stringLeftstringMD5HashBase64_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringLeftstringMD5HashBase64_prs|text=|trigger=button}{sub-section}{sub-section:stringLeftstringMD5HashBase64_prs|trigger=none|class=sIndent}\{[ObjectString]} textString -- the text to process
\{[Object]} i_size -- the size of the text to returnprocess
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringLeftstringMD5HashBase64_ret|text=|trigger=button}{sub-section}{sub-section:stringLeftstringMD5HashBase64_ret|trigger=none|class=sIndent}[String] -- the resultresulting text stringhashString{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringLeftstringMD5HashBase64_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeftstringMD5HashBase64_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringLeftstringMD5HashBase64_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeftstringMD5HashBase64_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringLeftstringMD5HashBase64_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeftstringMD5HashBase64_sam|trigger=none}{code:language=javascript}
//returns 'this i'
var retvalhashed_password = utils.stringLeft('this is a test',6);stringMD5HashBase64(user_password)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringLeftWordsstringMiddle|class=node}{tr:id=name}{td}h6.stringLeftWordsstringMiddle{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringLeftWordsstringMiddle{span}{span:id=iets|style=float: left;}\(text, i_start, numberofi_wordssize){span}{td}{tr}{tr:id=des}{td}{sub-section:stringLeftWordsstringMiddle_des|text=|trigger=button}{sub-section}{sub-section:stringLeftWordsstringMiddle_des|trigger=none|class=sIndent}Returns thea number of words, starting substring from the leftoriginal string.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringLeftWordsstringMiddle_snc|text=|trigger=button}{sub-section}{sub-section:stringLeftWordsstringMiddle_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringLeftWordsstringMiddle_prs|text=|trigger=button}{sub-section}{sub-section:stringLeftWordsstringMiddle_prs|trigger=none|class=sIndent}\{[ObjectString]} text -- the text to process
\{[ObjectNumber]} i_start -- the start index to work from
\{[Number]} numberofi_wordssize -- the size of the text to return
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringLeftWordsstringMiddle_ret|text=|trigger=button}{sub-section}{sub-section:stringLeftWordsstringMiddle_ret|trigger=none|class=sIndent}[String] -- the string with number of words form the left -- the result text string{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringLeftWordsstringMiddle_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeftWordsstringMiddle_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringLeftWordsstringMiddle_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeftWordsstringMiddle_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringLeftWordsstringMiddle_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringLeftWordsstringMiddle_sam|trigger=none}{code:language=javascript}
//returns 'this is ahis'
var retval = utils.stringLeftWordsstringMiddle('this is a test',2,3);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringMD5HashBase16stringMiddleWords|class=node}{tr:id=name}{td}h6.stringMD5HashBase16stringMiddleWords{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringMD5HashBase16stringMiddleWords{span}{span:id=iets|style=float: left;}\(textStringtext, i_start, numberof_words){span}{td}{tr}{tr:id=des}{td}{sub-section:stringMD5HashBase16stringMiddleWords_des|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase16stringMiddleWords_des|trigger=none|class=sIndent}Returns the md5 hash (encoded as base16) for specified text.

NOTE: MD5 (Message\-Digest Algorythm 5) is a hashsubstring functionfrom withthe a 128\-bit hash value, for more info see: http://en.wikipedia.org/wiki/MD5original string.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringMD5HashBase16stringMiddleWords_snc|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase16stringMiddleWords_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringMD5HashBase16stringMiddleWords_prs|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase16stringMiddleWords_prs|trigger=none|class=sIndent}class=sIndent}\{[String]} text -- to process
\{[Number]} i_start -- start word index
\{[ObjectNumber]} textStringnumberof_words -- the textword count to processreturn
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringMD5HashBase16stringMiddleWords_ret|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase16stringMiddleWords_ret|trigger=none|class=sIndent}[String] -- the resulting hashString string with number of words form the left and{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringMD5HashBase16stringMiddleWords_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMD5HashBase16stringMiddleWords_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringMD5HashBase16stringMiddleWords_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMD5HashBase16stringMiddleWords_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringMD5HashBase16stringMiddleWords_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMD5HashBase16stringMiddleWords_sam|trigger=none}{code:language=javascript}
//returns 'is a'
var hashed_passwordretval = utils.stringMD5HashBase16(user_password)stringMiddleWords('this is a test',2,2);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringMD5HashBase64stringPBKDF2Hash-String|class=node}{tr:id=name}{td}h6.stringMD5HashBase64stringPBKDF2Hash{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringMD5HashBase64stringPBKDF2Hash{span}{span:id=iets|style=float: left;}\(textString){span}{td}{tr}{tr:id=des}{td}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_des|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_des|trigger=none|class=sIndent}Returns the md5PBKDF2 hash (encoded as base64) for specified text. This method is preferred above the old MD5 hash for specifiedenhanced textsecurity.
It uses a NOTE: MD5 (Message\-Digest Algorythm 5) is adefault of 2000 iterations.

NOTE: PBKDF2 is the key hash function withfor the aPKCS 128(Public\-bitKey hashCryptography) valuestandard, for more info see: http://en.wikipedia.org/wiki/MD5PBKDF2{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_snc|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_prs|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_prs|trigger=none|class=sIndent}\{[ObjectString]} textString -- the text to process
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_ret|text=|trigger=button}{sub-section}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_ret|trigger=none|class=sIndent}[String] -- the resulting hashString{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMD5HashBase64stringPBKDF2Hash-String_sam|trigger=none}{code:language=javascript}
var hashed_password = utils.stringMD5HashBase64stringPBKDF2Hash(user_password)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringMiddlestringPBKDF2Hash-String_Number|class=node}{tr:id=name}{td}h6.stringMiddlestringPBKDF2Hash{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringMiddlestringPBKDF2Hash{span}{span:id=iets|style=float: left;}\(textString, i_start, i_sizeiterations){span}{td}{tr}{tr:id=des}{td}{sub-section:stringMiddlestringPBKDF2Hash-String_Number_des|text=|trigger=button}{sub-section}{sub-section:stringMiddle_des|trigger=none|class=sIndent}Returns a substring from the original string.{sub-section}{sub-section:stringPBKDF2Hash-String_Number_des|trigger=none|class=sIndent}Returns the PBKDF2 hash for specified text. This method is preferred above the old MD5 hash for enhanced security.

NOTE: PBKDF2 is the key hash function for the PKCS (Public\-Key Cryptography) standard, for more info see: http://en.wikipedia.org/wiki/PBKDF2{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringMiddlestringPBKDF2Hash-String_Number_snc|text=|trigger=button}{sub-section}{sub-section:stringMiddlestringPBKDF2Hash-String_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringMiddlestringPBKDF2Hash-String_Number_prs|text=|trigger=button}{sub-section}{sub-section:stringMiddlestringPBKDF2Hash-String_Number_prs|trigger=none|class=sIndent}\{[ObjectString]} textString -- the text to process
\{[ObjectNumber]} i_startiterations -- thehow startmany indexhash toiterations workshould from
\{[Object]} i_size -- the size of the text to return
be done, minimum should be 1000 or higher.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringMiddlestringPBKDF2Hash-String_Number_ret|text=|trigger=button}{sub-section}{sub-section:stringMiddlesection:stringPBKDF2Hash-String_Number_ret|trigger=none|class=sIndent}[String] -- the resultresulting text stringhashString{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringMiddlestringPBKDF2Hash-String_Number_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMiddlestringPBKDF2Hash-String_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringMiddlestringPBKDF2Hash-String_Number_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMiddlestringPBKDF2Hash-String_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringMiddlestringPBKDF2Hash-String_Number_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMiddlestringPBKDF2Hash-String_Number_sam|trigger=none}{code:language=javascript}
//returns 'his'
var retvalhashed_password = utils.stringMiddle('this is a test',2,3);stringPBKDF2Hash(user_password,5000)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringMiddleWordsstringPatternCount-String_String|class=node}{tr:id=name}{td}h6.stringMiddleWordsstringPatternCount{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[StringNumber]{span}{span:id=iets|style=float: left; font-weight: bold;}stringMiddleWordsstringPatternCount{span}{span:id=iets|style=float: left;}\(text, i_start, numberof_wordstoSearchFor){span}{td}{tr}{tr:id=des}{td}{sub-section:stringMiddleWordsstringPatternCount-String_String_des|text=|trigger=button}{sub-section}{sub-section:stringMiddleWordsstringPatternCount-String_String_des|trigger=none|class=sIndent}Returns a substring from the original stringthe number of times searchString appears in textString.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringMiddleWordsstringPatternCount-String_String_snc|text=|trigger=button}{sub-section}{sub-section:stringMiddleWordsstringPatternCount-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringMiddleWordsstringPatternCount-String_String_prs|text=|trigger=button}{sub-section}{sub-section:stringMiddleWordsstringPatternCount-String_String_prs|trigger=none|class=sIndent}\{[Object]} text -- to process
sIndent}\{[ObjectString]} i_starttext -- startthe text wordto indexprocess
\{[ObjectString]} numberof_wordstoSearchFor -- the wordstring countto tosearch returnfor
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringMiddleWordsstringPatternCount-String_String_ret|text=|trigger=button}{sub-section}{sub-section:stringMiddleWordsstringPatternCount-String_String_ret|trigger=none|class=sIndent}[StringNumber] -- the string with number of words formoccurrenceCount that the search string is found in the left andtext{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringMiddleWordsstringPatternCount-String_String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMiddleWordsstringPatternCount-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringMiddleWordsstringPatternCount-String_String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMiddleWordsstringPatternCount-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringMiddleWordsstringPatternCount-String_String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringMiddleWordsstringPatternCount-String_String_sam|trigger=none}{code:language=javascript}
//returns 2 'isas a'count
var retvalcount = utils.stringMiddleWordsstringPatternCount('this is a test',2,2'is');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringPatternCountstringPosition-String_String_Number_Number|class=node}{tr:id=name}{td}h6.stringPatternCountstringPosition{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}stringPatternCountstringPosition{span}{span:id=iets|style=float: left;}\(textString, searchStringtoSearchFor, i_start, i_occurrence){span}{td}{tr}{tr:id=des}{td}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_des|text=|trigger=button}{sub-section}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_des|trigger=none|class=sIndent}Returns the numberposition of times searchString appears in textString the string to search for, from a certain start position and occurrence.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringPatternCountstringPosition-String_String_Number_Number_snc|text=|trigger=button}{sub-section}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringPatternCountstringPosition-String_String_Number_Number_prs|text=|trigger=button}{sub-section}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_prs|trigger=none|class=sIndent}\{[ObjectString]} textString -- the text to process
\{[ObjectString]} searchStringtoSearchFor -- the string to search
\{[Number]} i_start -- the start index to search from
\{[Number]} i_occurrence -- the occurrence
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringPatternCountstringPosition-String_String_Number_Number_ret|text=|trigger=button}{sub-section}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_ret|trigger=none|class=sIndent}[Number] -- the occurrenceCount that the search string is found in the textposition{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringPatternCount:stringPosition-String_String_Number_Number_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringPatternCountstringPosition-String_String_Number_Number_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringPatternCountstringPosition-String_String_Number_Number_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringPatternCountstringPosition-String_String_Number_Number_sam|trigger=none}{code:language=javascript}
//returns 24 as countposition
var countpos = utils.stringPatternCountstringPosition('thisThis is a test','iss',1,1);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringPositionstringReplace-String_String_String|class=node}{tr:id=name}{td}h6.stringPositionstringReplace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[NumberString]{span}{span:id=iets|style=float: left; font-weight: bold;}stringPositionstringReplace{span}{span:id=iets|style=float: left;}\(textStringtext, searchString, i_startsearch_text, ireplacement_occurrencetext){span}{td}{tr}{tr:id=des}{td}{sub-section:stringPositionstringReplace-String_String_String_des|text=|trigger=button}{sub-section}{sub-section:stringPositionstringReplace-String_String_String_des|trigger=none|class=sIndent}ReturnsReplaces thea positionportion of thea string towith seach for, from a certain start position and occurrencereplacement text.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringPositionstringReplace-String_String_String_snc|text=|trigger=button}{sub-section}{sub-section:stringPositionstringReplace-String_String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringPosition:stringReplace-String_String_String_prs|text=|trigger=button}{sub-section}{sub-section:stringPositionstringReplace-String_String_String_prs|trigger=none|class=sIndent}\{[ObjectString]} textStringtext -- the text to process
\{[ObjectString]} searchStringsearch_text -- the string to search
\{[ObjectString]} ireplacement_starttext -- the startreplacement index to search from
\{[Object]} i_occurrence -- the occurrence
{text
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringPositionstringReplace-String_String_String_ret|text=|trigger=button}{sub-section}{sub-section:stringPositionstringReplace-String_String_String_ret|trigger=none|class=sIndent}[NumberString] -- the changed positiontext string{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringPositionstringReplace-String_String_String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringPositionstringReplace-String_String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringPositionstringReplace-String_String_String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringPositionstringReplace-String_String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringPositionstringReplace-String_String_String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringPositionstringReplace-String_String_String_sam|trigger=none}{code:language=javascript}
//returns 4 as position 'these are cow 1 and cow 2.'
var posretval = utils.stringPositionstringReplace('This is a these are test 1 and test 2.','test','scow',1,1);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringReplacestringReplaceTags|class=node}{tr:id=name}{td}h6.stringReplacestringReplaceTags{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringReplacestringReplaceTags{span}{span:id=iets|style=float: left;}\(text, search_text, replacement_textscriptable){span}{td}{tr}{tr:id=des}{td}{sub-section:stringReplacestringReplaceTags_des|text=|trigger=button}{sub-section}{sub-section:stringReplacestringReplaceTags_des|trigger=none|class=sIndent}Replaces a portion of a string with replacement textReturns the text with %%tags%% replaced, based on provided record or foundset or form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringReplacestringReplaceTags_snc|text=|trigger=button}{sub-section}{sub-section:stringReplacestringReplaceTags_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringReplacestringReplaceTags_prs|text=|trigger=button}{sub-section}{sub-section:stringReplacestringReplaceTags_prs|trigger=none|class=sIndent}\{[ObjectString]} text -- the text tags to work processwith
\{[Object]} search_textscriptable -- the string javascript object or foundset,record,form to search
\{[Object]} replacement_text --be used to fill in the replacementtags
text
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringReplacestringReplaceTags_ret|text=|trigger=button}{sub-section}{sub-section:stringReplacestringReplaceTags_ret|trigger=none|class=sIndent}[String] -- the changedtext with textreplaced stringtags{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringReplacestringReplaceTags_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplacestringReplaceTags_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringReplacestringReplaceTags_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplacestringReplaceTags_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringReplace_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplace_sam|trigger=none}{code:language=javascript}
//returns 'these are cow 1 and cow 2.'
var retval = utils.stringReplace('these are test 1 and test 2.','test','cow');
tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringReplaceTags_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplaceTags_sam|trigger=none}{code:language=javascript}
//Next line places a string in variable x, whereby the tag(%%TAG%%) is filled with the value of the database column 'company_name' of the selected record.
var x = utils.stringReplaceTags("The companyName of the selected record is %%company_name%% ", foundset)
//var otherExample = utils.stringReplaceTags("The amount of the related order line %%amount%% ", order_to_orderdetails);
//var recordExample = utils.stringReplaceTags("The amount of the related order line %%amount%% ", order_to_orderdetails.getRecord(i);
//Next line places a string in variable y, whereby the tag(%%TAG%%) is filled with the value of the form variable 'x' of the form named 'main'.
//var y = utils.stringReplaceTags("The value of form variable is %%x%% ", forms.main);
//The next sample shows the use of a javascript object
//var obj = new Object();//create a javascript object
//obj['x'] = 'test';//assign an named value
//var y = utils.stringReplaceTags("The value of object variable is %%x%% ", obj);//use the named value in a tag
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringReplaceTagsstringRight|class=node}{tr:id=name}{td}h6.stringReplaceTagsstringRight{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringReplaceTagsstringRight{span}{span:id=iets|style=float: left;}\(text, foundset_or_record_or_formi_size){span}{td}{tr}{tr:id=des}{td}{sub-section:stringReplaceTagsstringRight_des|text=|trigger=button}{sub-section}{sub-section:stringReplaceTagsstringRight_des|trigger=none|class=sIndent}Returns thea textstring with %%tags%% replaced,the basedrequested onnumber providedof recordcharacters, orstarting foundsetfrom orthe formright.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringReplaceTagsstringRight_snc|text=|trigger=button}{sub-section}{sub-section:stringReplaceTagsstringRight_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringReplaceTagsstringRight_prs|text=|trigger=button}{sub-section}{sub-section:stringReplaceTagsstringRight_prs|trigger=none|class=sIndent}\{[ObjectString]} text -- the text tags to work withprocess
\{[ObjectNumber]} foundset_or_record_or_formi_size -- the foundsetsize orof recordthe or formtext to be used to fill in the tags
return
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringReplaceTagsstringRight_ret|text=|trigger=button}{sub-section}{sub-section:stringReplaceTagsstringRight_ret|trigger=none|class=sIndent}[String] -- the result text with replaced tagsstring{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringReplaceTagsstringRight_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplaceTagsstringRight_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringReplaceTags_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplaceTags_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringReplaceTags_samstringRight_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringReplaceTagsstringRight_samlink|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{codetr:language=javascript}
//Next line places a string in variable x, whereby the tag(%%TAG%%) is filled with the value of the database column 'company_name' of the selected record.
var x = utils.stringReplaceTags("The companyName of the selected record is %%company_name%% ", foundset)
//var otherExample = utils.stringReplaceTags("The amount of the related order line %%amount%% ", order_to_orderdetails);
//var recordExample = utils.stringReplaceTags("The amount of the related order line %%amount%% ", order_to_orderdetails.getRecord(i);
//Next line places a string in variable y, whereby the tag(%%TAG%%) is filled with the value of the form variable 'x' of the form named 'main'.
var y = utils.stringReplaceTags("The value of form variable is %%x%% ", forms.mainid=sam}{td}*Sample*\\{sub-section:stringRight_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRight_sam|trigger=none}{code:language=javascript}
//returns 'a test'
var retval = utils.stringLeft('this is a test',6);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringRightstringRightWords|class=node}{tr:id=name}{td}h6.stringRightstringRightWords{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}stringRightstringRightWords{span}{span:id=iets|style=float: left;}\(textStringtext, inumberof_sizewords){span}{td}{tr}{tr:id=des}{td}{sub-section:stringRightstringRightWords_des|text=|trigger=button}{sub-section}{sub-section:stringRightstringRightWords_des|trigger=none|class=sIndent}Returns a string with the requested number of characterswords, starting from the right.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringRightstringRightWords_snc|text=|trigger=button}{sub-section}{sub-section:stringRightstringRightWords_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringRightstringRightWords_prs|text=|trigger=button}{sub-section}{sub-section:stringRightstringRightWords_prs|trigger=none|class=sIndent}\{[ObjectString]} textStringtext -- the text to process
\{[ObjectNumber]} inumberof_sizewords -- the size of the text to return
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringRightstringRightWords_ret|text=|trigger=button}{sub-section}{sub-section:stringRightstringRightWords_ret|trigger=none|class=sIndent}[String] -- the result text string string with number of words form the right{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringRightstringRightWords_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRightstringRightWords_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringRightstringRightWords_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRightstringRightWords_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringRightstringRightWords_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRightstringRightWords_sam|trigger=none}{code:language=javascript}
//returns 'is a test'
var retval = utils.stringLeftstringRightWords('this is a test',63);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringRightWordsstringToNumber-String|class=node}{tr:id=name}{td}h6.stringRightWordsstringToNumber{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[StringNumber]{span}{span:id=iets|style=float: left; font-weight: bold;}stringRightWordsstringToNumber{span}{span:id=iets|style=float: left;}\(text, numberof_wordstextString){span}{td}{tr}{tr:id=des}{td}{sub-section:stringRightWordsstringToNumber-String_des|text=|trigger=button}{sub-section}{sub-section:stringRightWordsstringToNumber-String_des|trigger=none|class=sIndent}ReturnsFilters thecharacters numberout of words, starting from the right from a string and leaves digits, returns the number. Uses locale decimal separator.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringRightWordsstringToNumber-String_snc|text=|trigger=button}{sub-section}{sub-section:stringRightWordsstringToNumber-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringRightWordsstringToNumber-String_prs|text=|trigger=button}{sub-section}{sub-section:stringRightWordsstringToNumber-String_prs|trigger=none|class=sIndent}\{[ObjectString]} texttextString -- tothe process
\{[Object]} numberof_words -- text to returnprocess
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringRightWordsstringToNumber-String_ret|text=|trigger=button}{sub-section}{sub-section:stringRightWordsstringToNumber-String_ret|trigger=none|class=sIndent}[StringNumber] -- the stringresulting with number of words form the right{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringRightWordsstringToNumber-String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRightWordsstringToNumber-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringRightWordsstringToNumber-String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRightWordsstringToNumber-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringRightWordsstringToNumber-String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringRightWordsstringToNumber-String_sam|trigger=none}{code:language=javascript}
//returns 'is a test65567'
var retval = utils.stringRightWordsstringToNumber('this is a test',3fg65gf567');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringToNumberstringTrim-String|class=node}{tr:id=name}{td}h6.stringToNumberstringTrim{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[NumberString]{span}{span:id=iets|style=float: left; font-weight: bold;}stringToNumberstringTrim{span}{span:id=iets|style=float: left;}\(textString){span}{td}{tr}{tr:id=des}{td}{sub-section:stringToNumberstringTrim-String_des|text=|trigger=button}{sub-section}{sub-section:stringToNumberstringTrim-String_des|trigger=none|class=sIndent}FiltersReturns characters out of from a the string andwithout leavesleading digits,or returnstrailing the numberspaces.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringToNumberstringTrim-String_snc|text=|trigger=button}{sub-section}{sub-section:stringToNumberstringTrim-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringToNumberstringTrim-String_prs|text=|trigger=button}{sub-section}{sub-section:stringToNumberstringTrim-String_prs|trigger=none|class=sIndent}\{[ObjectString]} textString -- the text to process
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringToNumberstringTrim-String_ret|text=|trigger=button}{sub-section}{sub-section:stringToNumberstringTrim-String_ret|trigger=none|class=sIndent}[NumberString] -- the resulting numbertrimmed string{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringToNumberstringTrim-String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringToNumberstringTrim-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringToNumberstringTrim-String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringToNumberstringTrim-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringToNumberstringTrim-String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringToNumberstringTrim-String_sam|trigger=none}{code:language=javascript}
//returns '65567text'
var retval = utils.stringToNumberstringTrim('fg65gf567   text   ');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringTrimstringWordCount|class=node}{tr:id=name}{td}h6.stringTrimstringWordCount{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[StringNumber]{span}{span:id=iets|style=float: left; font-weight: bold;}stringTrimstringWordCount{span}{span:id=iets|style=float: left;}\(textStringtext){span}{td}{tr}{tr:id=des}{td}{sub-section:stringTrimstringWordCount_des|text=|trigger=button}{sub-section}{sub-section:stringTrimstringWordCount_des|trigger=none|class=sIndent}Returns the number stringof withoutwords leadingin orthe trailingtext spacesstring.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringTrimstringWordCount_snc|text=|trigger=button}{sub-section}{sub-section:stringTrimstringWordCount_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringTrimstringWordCount_prs|text=|trigger=button}{sub-section}{sub-section:stringTrimstringWordCount_prs|trigger=none|class=sIndent}\{[ObjectString]} textStringtext -- the text to process
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringTrimstringWordCount_ret|text=|trigger=button}{sub-section}{sub-section:stringTrimstringWordCount_ret|trigger=none|class=sIndent}[StringNumber] -- the resultingword trimmed stringcount{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringTrimstringWordCount_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringTrimstringWordCount_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringTrimstringWordCount_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringTrimstringWordCount_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringTrimstringWordCount_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringTrimstringWordCount_sam|trigger=none}{code:language=javascript}
//returns 'text4' as result
var retval = utils.stringTrimstringWordCount('this is a text   test');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stringWordCounttimestampToDate|class=node}{tr:id=name}{td}h6.stringWordCounttimestampToDate{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[NumberDate]{span}{span:id=iets|style=float: left; font-weight: bold;}stringWordCounttimestampToDate{span}{span:id=iets|style=float: left;}\(textStringdate){span}{td}{tr}{tr:id=des}{td}{sub-section:stringWordCounttimestampToDate_des|text=|trigger=button}{sub-section}{sub-section:stringWordCounttimestampToDate_des|trigger=none|class=sIndent}Returns a datestamp from the numbertimestamp of words in the text string(sets hours,minutes,seconds and milliseconds to 0).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stringWordCounttimestampToDate_snc|text=|trigger=button}{sub-section}{sub-section:stringWordCounttimestampToDate_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:stringWordCounttimestampToDate_prs|text=|trigger=button}{sub-section}{sub-section:stringWordCounttimestampToDate_prs|trigger=none|class=sIndent}\{[ObjectDate]} textStringdate -- the text to process object to be stripped from its time elements
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:stringWordCounttimestampToDate_ret|text=|trigger=button}{sub-section}{sub-section:stringWordCounttimestampToDate_ret|trigger=none|class=sIndent}[NumberDate] -- the wordstripped date countobject{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stringWordCounttimestampToDate_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringWordCounttimestampToDate_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stringWordCounttimestampToDate_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringWordCounttimestampToDate_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stringWordCounttimestampToDate_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:stringWordCounttimestampToDate_sam|trigger=none}{code:language=javascript}
//returns '4' as result
var retvaldate = utils.stringWordCount('this is a test'timestampToDate(application.getTimeStamp());
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=timestampToDatevalidatePBKDF2Hash|class=node}{tr:id=name}{td}h6.timestampToDatevalidatePBKDF2Hash{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[DateBoolean]{span}{span:id=iets|style=float: left; font-weight: bold;}timestampToDatevalidatePBKDF2Hash{span}{span:id=iets|style=float: left;}\(datepassword, hash){span}{td}{tr}{tr:id=des}{td}{sub-section:timestampToDatevalidatePBKDF2Hash_des|text=|trigger=button}{sub-section}{sub-section:timestampToDatevalidatePBKDF2Hash_des|trigger=none|class=sIndent}Returns a datestamp from the timestamp (sets hours,minutes,seconds and milliseconds to 0).Validates the given password against the given hash. The hash should be generated by one of the stringPBKDF2Hash(password \[,iteration\]) functions.

NOTE: PBKDF2 is the key hash function for the PKCS (Public\-Key Cryptography) standard, for more info see: http://en.wikipedia.org/wiki/PBKDF2{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:timestampToDatevalidatePBKDF2Hash_snc|text=|trigger=button}{sub-section}{sub-section:timestampToDatevalidatePBKDF2Hash_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:timestampToDatevalidatePBKDF2Hash_prs|text=|trigger=button}{sub-section}{sub-section:timestampToDatevalidatePBKDF2Hash_prs|trigger=none|class=sIndent}\{[ObjectString]} datepassword -- the objectpassword to be stripped from its time elementstest against
\{[String]} hash -- the hash the password needs to validate to.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:timestampToDatevalidatePBKDF2Hash_ret|text=|trigger=button}{sub-section}{sub-section:timestampToDatevalidatePBKDF2Hash_ret|trigger=none|class=sIndent}[DateBoolean] -- the stripped date object true if his hash is valid for that password{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:timestampToDatevalidatePBKDF2Hash_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:timestampToDatevalidatePBKDF2Hash_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:timestampToDatevalidatePBKDF2Hash_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:timestampToDatevalidatePBKDF2Hash_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:timestampToDatevalidatePBKDF2Hash_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:timestampToDatevalidatePBKDF2Hash_sam|trigger=none}{code:language=javascript}
var date = if (utils.timestampToDate(application.getTimeStamp());validatePBKDF2Hash(user_password, hashFromDb)) {
   // logged in 
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}