Google на "экспоненциальное представление regexp" шоу много соответствий, включая этот ( не используют его!!!! ), который использует
*** warning: questionable ***
/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/
, который включает случаи, такие как-.5e7 и +00000e33 (оба из которых Вы не можете хотеть позволять).
Вместо этого я был бы высоко , рекомендуют использовать синтаксис на Doug Crockford веб-сайт JSON , который явно документы, что составляет число в JSON. Вот соответствующая схема синтаксиса, взятая от той страницы:
(источник: json.org )
при рассмотрении строки 456 из его сценарий json2.js (безопасное преобразование в JSON в JavaScript) Вы будете видеть эту часть regexp:
/-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/
, который по иронии судьбы не соответствует его схеме синтаксиса.... (похож, я должен зарегистрировать ошибку), я верю regexp, который действительно реализует ту схему синтаксиса, этот:
/-?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/
и если Вы хотите позволить начальную букву + также, Вы добираетесь:
/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/
Добавляют круглые скобки получения к Вашей симпатии.
я также настоятельно рекомендовал бы, чтобы Вы изложили в деталях набор тестовых сценариев, чтобы гарантировать, чтобы Вы включали те возможности, которые Вы хотите включать (или не включать), такие как:
allowed:
+3
3.2e23
-4.70e+9
-.2E-4
-7.6603
not allowed:
+0003 (leading zeros)
37.e88 (dot before the e)
Удачи!
Я бы также предложил Простой , взгляните на учебник , там и решите сами. Список рассылки очень отзывчив, и вы всегда получите быстрый ответ на любые вопросы.
) //: Playground - noun: a place where people can play
import UIKit
if let backgroundImage = UIImage(named: "FrogAvatar") // you will have to provide your own image in your playground's Resource file
{
let height = backgroundImage.size.height
let width = backgroundImage.size.width
let aLayer = CALayer()
let startFrame = CGRect(x: 0, y: 0, width: width, height: height)
let aView = UIView(frame: startFrame)
aLayer.frame = startFrame
aLayer.contentsScale = aView.contentScaleFactor
aLayer.contents = backgroundImage.cgImage
aView.layer.addSublayer(aLayer)
aView // look at this via the Playground's