如何找到第n个令牌的位置

Ale*_*lex 4 string coldfusion tokenize

我们有一个字符串,最大限制为20个字.如果用户输入超过20个单词的内容,则需要在第20个单词处截断该字符串.我们怎样才能自动化呢?我们能够使用#GetToken(myString,20,'')#找到第20个标记,但不确定如何找到它的位置以便左边修剪.有任何想法吗?提前致谢.

ale*_*ale 8

UDF ListLeft()应该做你想要的.它采用一个列表并返回包含您定义的元素数量的列表."空间"作为分隔符很好.

/**
 * A Left() function for lists.  Returns the n leftmost elements from the specified list.
 * 
 * @param list      List you want to return the n leftmost elements from. 
 * @param numElements      Number of leftmost elements you want returned. 
 * @param delimiter      Delimiter for the list.  Default is the comma. 
 * @return Returns a string, 
 * @author Rob Brooks-Bilson (rbils@amkor.com) 
 * @version 1, April 24, 2002 
 */
function ListLeft(list, numElements){
  var tempList="";
  var i=0;
  var delimiter=",";
  if (ArrayLen(arguments) gt 2){
    delimiter = arguments[3];
  }
  if (numElements gte ListLen(list, delimiter)){
    return list;
  }
  for (i=1; i LTE numElements; i=i+1){
    tempList=ListAppend(tempList, ListGetAt(list, i, delimiter), delimiter);
  }
  return tempList;
}
Run Code Online (Sandbox Code Playgroud)

ps CFLIB.org是一个出色的资源,通常是我寻找这样的东西的第一站.我高度推荐它.