0

我如何在黑莓 OS 6.0 中进行简单的模式匹配。目的是检查输入到用户名编辑字段中的用户名是否包含特殊字符....请帮助我
,谢谢 jibysthomas

4

1 回答 1

1

更好的解决方案是通过在编辑字段中添加适当的 TextFilter 来控制用户输入。这具有修改屏幕键盘以匹配您在这些设备上的过滤器的额外好处。

下面是一个示例,它结合了两个内置文本过滤器的操作来制作一个只允许大写字母和数字的过滤器:

import net.rim.device.api.ui.text.TextFilter;
import net.rim.device.api.system.Characters;

/**
* A TextFilter class to filter for station identifiers
*/
private static class StationFilter extends TextFilter {

 // Order of the supporting filters is important, NUMERIC will convert
 // letters to numbers if it gets them first.
 private static TextFilter[]      _tf = {
  TextFilter.get(TextFilter.NUMERIC),
  TextFilter.get(TextFilter.UPPERCASE)
 };

// Convert using the first supporting filter that has a conversion
 public char convert( char character, int status) {
  char c = 0;

  for (int i = _tf.length - 1; i >= 0; i--) {
   c = _tf[i].convert(character, status);
   if (c != 0) {
    return c;
   }
  }

  return 0;
 }

// Validate a space for separator, then by supporting filter
 public boolean validate(char character) {
  if (character == Characters.SPACE) {
   return true;
  }

  for (int i = _tf.length - 1; i >= 0; i--) {
   boolean b = _tf[i].validate(character);
   if (b) {
    return true;
   }
  }

  return false;
 }
}
于 2012-05-24T14:54:46.923 回答