Ios 如何确认字符串仅包含Swift中的数字?

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*)?$” 这将接受一个或多个数字,如果您只想接受一个

如果searchView只包含数字,我如何检查

我发现:

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)