diff --git a/projects/samskivert/src/java/com/samskivert/util/StringUtil.java b/projects/samskivert/src/java/com/samskivert/util/StringUtil.java index c4e75645..c075d1c3 100644 --- a/projects/samskivert/src/java/com/samskivert/util/StringUtil.java +++ b/projects/samskivert/src/java/com/samskivert/util/StringUtil.java @@ -1,5 +1,5 @@ // -// $Id: StringUtil.java,v 1.66 2003/11/19 18:52:30 mdb Exp $ +// $Id: StringUtil.java,v 1.67 2003/12/17 19:19:25 ray Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -42,6 +42,8 @@ import java.util.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.StringTokenizer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * String related utility functions. @@ -120,6 +122,22 @@ public class StringUtil return buf.toString(); } + /** + * Sanitize the specified String such that each character must match + * against the regex specified. + */ + public static String sanitize (String source, String charRegex) + { + final StringBuffer buf = new StringBuffer(" "); + final Matcher matcher = Pattern.compile(charRegex).matcher(buf); + return sanitize(source, new CharacterValidator() { + public boolean isValid (char c) { + buf.setCharAt(0, c); + return matcher.matches(); + } + }); + } + /** * Returns a new string based on source with all * instances of before replaced with after.