Как вы подтверждаете, что строка содержит только числа в Swift? [дубликат]

этот вопрос уже есть ответ здесь:

Как я могу проверить, если searchView содержит только цифры?

Я нашел вот это:

if newText.isMatchedByRegex("^(?:|0|[1-9]d*)(?:.d*)?$") { ... }

но он проверяет, содержит ли текст какое-либо число. Как я могу это сделать, если весь текст содержит только номера в Swift?

3 ответов


вот решение, которое вы можете получить все цифры из String.

Swift 3.0:

 let testString = "asdfsdsds12345gdssdsasdf"

 let phone = testString.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "")

 print(phone)

можно использовать "^[0-9]+$" instade "^(?:|0|[1-9]\d*)(?:\.\d*)?$"

Это будет принимать одну или несколько цифр, если вы хотите принять только одну цифру, а затем удалить +


Это должно работать:

func isNumeric(string: String) -> Bool
{
    let number = Int(string)
    return number != nil
}