字段中没有@会导致它崩溃
本文关键字:崩溃 字段 | 更新日期: 2023-09-27 18:02:17
我在电子邮件验证中遇到了一些麻烦。
我有两个变量,email和emailTrim, email存储用户输入的email地址,emailTrim由以下代码组成:
string emailTrim = email.Substring(0, email.LastIndexOf("@"));
取email变量并删除@符号之后的所有内容。这正是我想要它做的,然而,这带来了错误的副作用"ArgumentOutOfRangeException was unhandled"
是否有人可以帮助我用另一种方法来删除'@'符号之后的所有内容,或者一种方法来"处理"抛出的异常。
用Split()
代替:
string emailTrimmed = email.Split('@')[0];
由于无论您传递什么,LastIndexOf
都会返回一些值,因此您应该检查结果是否有效。
当字符串没有'@'
符号时,LastIndexOf
产生-1
。将它传递给Substring
会给你一个从0到- 1的无效范围。
// Find the position of '@', and store it in a variable
var pos = email.LastIndexOf("@");
// Check the position for negative value before passing it to Substring
var emailTrim = pos >= 0 ? email.Substring(0, pos) : email;