ios - 仅将字符串的数字粘贴(插入)到标签(IOS)中

标签 ios regex swift copy-paste

我有实现“粘贴”功能的代码。

但是插入了所有符号,而不仅仅是数字。

我怎样才能让它只能插入数字???

创建扩展文件:

Swift extension example

Past (Photo)

更新代码

actionSheetController.addAction(
        UIAlertAction(title: NSLocalizedString("Past", comment: ""), style: .default, handler: { [weak self] _ in
            guard let strongSelf = self else { return }

            strongSelf.displayResultLabel.text = UIPasteboard.general.string.onlyNumbers()

            print ("Past")

        })
    )



extension String {

    func onlyNumbers() ->String{
        do{
            let regex = try NSRegularExpression(pattern: "([//.,\\d])*", options:[.dotMatchesLineSeparators])
            var result : String = ""

            for resultMatch in regex.matches(in: self, options: NSRegularExpression.MatchingOptions.init(rawValue: 0), range: NSMakeRange(0, NSString(string: self).length)) {
                result += NSString(string: self).substring(with: resultMatch.range)
            }
            return result
        }
        catch
        {

        }

        return ""
    }

}

最佳答案

将此扩展regex 函数结合使用,以仅获取String 的数字

    extension String {

    func onlyNumbers() ->String{
        do{
            let regex = try NSRegularExpression(pattern: "([//.,\\d])*", options:[.dotMatchesLineSeparators])
            var result : String = ""

            for resultMatch in regex.matches(in: self, options: NSRegularExpression.MatchingOptions.init(rawValue: 0), range: NSMakeRange(0, NSString(string: self).length)) {
                result += NSString(string: self).substring(with: resultMatch.range)
            }
            return result
        }
        catch
        {

        }

        return ""
    }

}

你可以这样使用它

actionSheetController.addAction(
        UIAlertAction(title: NSLocalizedString("Past", comment: ""), style: .default, handler: { [weak self] _ in
            guard let strongSelf = self else { return }

            strongSelf.displayResultLabel.text = UIPasteboard.general.string.onlyNumbers()
            print ("Past")

        })
    )

关于ios - 仅将字符串的数字粘贴(插入)到标签(IOS)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45920542/

相关文章:

ios - 从 CocoaPods 框架编辑锁定的文件

ios - 崩溃报告 - iOS - 加载,但第一次触摸时崩溃

iphone - iPhone 的 SudzC 似乎在每次 Web 服务调用时泄漏 1kB

regex - 如何在Elasticsearch中编写此查询

regex - Sed:更改替换组的大小写

ios - 初始化UICollectionViewCell时传递参数

ios - 无法使用 Testflight 进行内部测试的 'Start Testing'

ios - 导航栏中的自定义图标 Swift 3

java - 为什么正则表达式\w*(\s+|$) 找到 2 个匹配项 "foo"(Java)?

ios - 如何添加约束以编程方式将两个 View 附加在一起?