首先,我是 Kotlin 新手,并且只使用 Android Studio 两周时间。
我只是想检查 EditText 字段是否包含任何数字/符号/字符。我尝试这样写:
if (editText!!.text.contains(Int)) {
textView?.text = "ERROR! EDITTEXT FIELD CONTAINS DIGITS!"
}
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。例如,我如何检查文本是否是数字,或者是否包含符号(如“/?!:;%”)?感谢您的帮助!
Gra*_*lov 12
大写字母:
if (yourString.contains("[A-Z]".toRegex())) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
小写字母:
if (yourString.contains("[a-z]".toRegex())) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
数字:
if (yourString.contains("[0-9]".toRegex())) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
特殊字符:
if (yourString.contains("[!\"#$%&'()*+,-./:;\\\\<=>?@\\[\\]^_`{|}~]".toRegex())) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
以上所有字符:
if (yourString.contains("[A-Za-z0-9!\"#$%&'()*+,-./:;\\\\<=>?@\\[\\]^_`{|}~]".toRegex())) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
由于您需要检查文本是否仅包含字母,而不是对任何数字/特殊字符使用正则表达式,因此您可以使用带有否定字母的正则表达式[^A-Za-z],这意味着字母以外的任何内容。所以你的逻辑是
if (editText!!.text.contains(Regex("[^A-Za-z]"))) {
textView?.text = "ERROR! EDITTEXT FIELD CONTAINS DIGITS/SPECIAL CHARS!"
}
Run Code Online (Sandbox Code Playgroud)
请注意,这仅考虑英文字母。
定义一个包含要检查的所有符号和数字的字符串:
val symbols = "0123456789/?!:;%"
Run Code Online (Sandbox Code Playgroud)
然后使用any:
if (editText!!.text.any {it in symbols}) {
textView?.text = "ERROR! EDITTEXT FIELD CONTAINS DIGITS/INVALID SYMBOLS!"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8063 次 |
| 最近记录: |