gpt4 book ai didi

java - 如何在不丢弃中间字符串的情况下验证在 EditText 中键入的字符串?

转载 作者:行者123 更新时间:2023-11-30 04:00:18 25 4
gpt4 key购买 nike

我正在尝试使用 TextWatcher 和正则表达式来验证用户输入。请注意,我有一个复杂的正则表达式:

edit.addTextChangedListener(new TextWatcher() {           
private final Pattern m_regex = Pattern.compile("([a-zA-Z]{4}[ ]{0,1}){7}");

@Override
public void afterTextChanged(Editable s) {
String text = s.toString();
int length = text.length();

if(!m_regex.matcher(text).matches() && length > 0) {
s.delete(length - 1, length);
}
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}

});

这里的问题是匹配器只能检查 2 种字符串状态:与提供的表达式匹配和不匹配,但对于输入验证,您还需要检查中间状态 - 当字符串不匹配模式但不匹配时与之相矛盾。有什么方法可以使用我的正则表达式来验证在 EditText 中键入的字符串吗?

最佳答案

与另一个正则表达式进行匹配。抱歉,如果答案看起来很愚蠢,但正如您之前所说,匹配器只能检查 2 种字符串状态:匹配和不匹配

编辑:

我更好地理解了你的问题。你可以这样做:测试输入与这个正则表达式

^(([a-zA-Z]{4}[ ]{0,1}){0,6}([a-zA-Z]{0,4})|([a-zA-Z]{4}))$

这将验证插入的文本。如果可以,让用户继续。仅当用户完成输入文本时才应使用您的正则表达式! -

或者,如果您想检查用户是否已完成写入,请执行以下操作:匹配我编写的正则表达式以查看文本是否正确。如果 ok 匹配你的,如果匹配,则用户已完成插入文本。

关于java - 如何在不丢弃中间字符串的情况下验证在 EditText 中键入的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12599908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com