Update of /usr/cvsroot/asterisk/doc In directory mongoose.digium.com:/tmp/cvs-serv2635/doc
Modified Files: README.variables Log Message: enhance documentation for string chopping (bug #4049) Index: README.variables =================================================================== RCS file: /usr/cvsroot/asterisk/doc/README.variables,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- README.variables 2 Apr 2005 01:08:55 -0000 1.39 +++ README.variables 20 Apr 2005 14:46:54 -0000 1.40 @@ -69,28 +69,49 @@ REMOVING CHARACTERS FROM STRING ------------------------------- -If you want to remove the first N characters from a string, you just -add a colon and the number of characters, like +The format for removing characters from a variable can be expressed as: + + ${variable_name[:offset[:length]]} + +If you want to remove the first N characters from the string assigned +to a variable, simply append a colon and the number of characters to +remove from the beginning of the string to the variable name. ;Remove the first character of extension, save in "number" variable - exten => _9X.,1,setvar(number=${EXTEN:1}) + exten => _9X.,1,SetVar(number=${EXTEN:1}) -A second colon limits the number of characters used from the original -string. - ;Strip five characters from the start of string, use only two - ; (character 6 and 7 in the original string) - exten => 1000,4,setvar(skrep=${STRING:5:2}) +Assuming we've dialed 918005551234, the value saved to the 'number' variable +would be 18005551234. This is useful in situations when we require users to +dial a number to access an outside line, but do not wish to pass the first +digit. -You can also count from the end of the string by giving a negative -position: +If you use a negative offset number, Asterisk starts counting from the end +of the string and then removes everything before the new position. The following +example will save the numbers 1234 to the 'number' variable, still assuming +we've dialed 918005551234. - ;Use the two first of the three last characters in the account code - exten => 4500,4,setvar(acc=${ACCOUNTCODE:-3:2}) + ;Remove everything before the last four digits of the dialed string + exten => _9X.,1,SetVar(number=${EXTEN:-4}) -Or - ;Use the last three digits of the phone number - exten => 6112,4,goto(${EXTEN:-3},1) +We can also limit the number of characters from our offset position that we +wish to use. This is done by appending a second colon and length value to the +variable name. The following example will save the numbers 555 to the 'number' +variable. + ;Only save the middle numbers 555 from the string 918005551234 + exten => _9X.,1,SetVar(number=${EXTEN:5:3}) + +The length value can also be used in conjunction with a negative offset. This +may be useful if the length of the string is unknown, but the trailing digits +are. The following example will save the numbers 555 to the 'number' variable, +even if the string starts with more characters than expected (unlike the +previous example). + + ;Save the numbers 555 to the 'number' variable + exten => _9X.,1,SetVar(number=${EXTEN:-7:3}) + +If a negative length value is entered, it is ignored and Asterisk will match +to the end of the string. ___________________________ EXPRESSIONS: --------------------------- _______________________________________________ Asterisk-Cvs mailing list Asterisk-Cvs@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-cvs