Ios 如何确认字符串仅包含Swift中的数字?
如果searchView只包含数字,我如何检查 我发现:Ios 如何确认字符串仅包含Swift中的数字?,ios,regex,swift,Ios,Regex,Swift,如果searchView只包含数字,我如何检查 我发现: if newText.isMatchedByRegex("^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$") { ... } 但它会检查文本是否包含任何数字。如果Swift中的所有文本都只包含数字,我该怎么办?下面是一个解决方案,您可以从字符串中获取所有数字 Swift 3.0: 您可以使用“^[0-9]+$”instade“^(?:\\\.\\d*)(?:\\.\\d*)?$” 这将接受一个或多个数字,如果您只想接受一个
if newText.isMatchedByRegex("^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$") { ... }
但它会检查文本是否包含任何数字。如果Swift中的所有文本都只包含数字,我该怎么办?下面是一个解决方案,您可以从
字符串中获取所有数字
Swift 3.0:
您可以使用“^[0-9]+$”
instade“^(?:\\\.\\d*)(?:\\.\\d*)?$”
这将接受一个或多个数字,如果您只想接受一个数字,请删除+
尝试将其解析为int。如果存在int以外的任何内容,它将抛出错误。如何用短方法执行@Shahim此NSCharacterSet是否包含阿拉伯数字类型?我的意思是用户可能只需要这种类型的数字(1,2,3,4,…),但键盘也可能包括这样的数字(£٣٣)。如何仅检查(1、2、3)?@СССчГчч,如果您想确定集合中只包含特定字符,可以通过+characterSetWithCharactersInString:
方法定义字符集。()浮点数呢?还是否定?这些不再是数字了吗?“^[0-9]+(\[0-9]+)?$”这将匹配浮点值和整数。如果只接受十进制值,请使用“^[0-9]+\[0-9]+$”。这就是为什么不清楚为什么您明确建议不要使用它。
let testString = "asdfsdsds12345gdssdsasdf"
let phone = testString.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "")
print(phone)