比较两个文本字段的文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个文本字段的文本相关的知识,希望对你有一定的参考价值。

如何比较两个文本字段中的文本以查看它们是否相同,例如在“密码”和“确认密码”文本字段中?

if (passwordField == passwordConfirmField) {

    //they are equal to each other

} else {

    //they are not equal to each other

}
答案

在Objective-C中你应该使用isEqualToString:,如下所示:

if ([passwordField.text isEqualToString:passwordConfirmField.text]) {
    //they are equal to each other
} else {
    //they are *not* equal to each other
}

NSString是指针类型。使用==时,实际上是在比较两个内存地址,而不是两个值。字段的text属性是2个不同的对象,具有不同的地址。 所以==将永远返回false


在Swift中,事情有点不同。 Swift String类型符合Equatable协议。这意味着它通过实现运算符==为您提供相等性。使以下代码安全使用:

let string1: String = "text"
let string2: String = "text"

if string1 == string2 {
    print("equal")
}

如果string2被宣布为NSString怎么办?

let string2: NSString = "text"

由于在斯威夫特的==String之间进行了一些桥接,使用NSString仍然是安全的。


1:有趣的是,如果两个NSString对象具有相同的值,编译器可以在引擎盖下进行一些优化并重新使用相同的对象。所以==有可能在某些情况下返回true。显然这不是你想要依赖的东西。

另一答案

您可以通过使用NSString的isEqualToString:方法来执行此操作,如下所示:

NSString *password = passwordField.text;
NSString *confirmPassword = passwordConfirmField.text;

if([password isEqualToString: confirmPassword]) {
    // password correctly repeated
} else {
    // nope, passwords don't match
}

希望这可以帮助!

以上是关于比较两个文本字段的文本的主要内容,如果未能解决你的问题,请参考以下文章

比较两个文本字段,iOS

JavaScript单行代码,也就是代码片段

如果 EditText 字段中有文本,如何更改 backgroundtint 颜色?

从父活动android获取片段编辑文本值

软输入键盘隐藏编辑文本

Drupal 自定义表单记住文本字段数据