Skip to content

Instantly share code, notes, and snippets.

@umpteenthdev
Last active November 25, 2019 12:59
Show Gist options
  • Select an option

  • Save umpteenthdev/fcf01e24c54e19650e4ec648ba234ccf to your computer and use it in GitHub Desktop.

Select an option

Save umpteenthdev/fcf01e24c54e19650e4ec648ba234ccf to your computer and use it in GitHub Desktop.
Android input filter implemented using regular expressions
import android.text.InputFilter
import android.text.Spanned
abstract class SuggestedInputFilter : InputFilter {
override fun filter(source: CharSequence, start: Int, end: Int, dest: Spanned, dstart: Int, dend: Int): CharSequence? {
val suggestedResult = dest.replaceRange(dstart, dend, source)
val cancelResult = dest.slice(dstart until dend)
return if (accept(suggestedResult)) null else cancelResult
}
abstract fun accept(suggestedResult: CharSequence): Boolean
}
class RegexInputFilter(private val pattern: Regex) : SuggestedInputFilter() {
override fun accept(suggestedResult: CharSequence): Boolean = pattern.matches(suggestedResult)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment