Если я понимаю требование, следующее будет соответствовать обоим случаям. По сути, вам нужно использовать регулярное выражение или оператор |
.
Следующее удалит все ведущие 0s
str.replace(/(^0+|^\+)/,'')
Но если вам нужно просто удалить ровно два ведущих 0, используйте это:
str.replace(/(^00|^\+)/,'')
И вот оно в действии на ваши примеры:
let nums = ['+37253783478', '0037253783478', '0037253780478', '375378+0478'];
let replaced = nums.map(num => num.replace(/(^0+|^\+)/,''));
console.log(replaced);
Короткий ответ - то, что MetaObject - то, что ответственно за то, что на самом деле сгенерировало код, который будет выполнен на сайте вызова. Механизм, который это использует для этого, является деревьями выражений LINQ, которые были улучшены в ДОЛЛАРЕ. Таким образом вместо того, чтобы запуститься с объекта, это запускается с выражения, которое представляет объект, и в конечном счете это испытывает необходимость для возврата дерева выражений, которое описывает действие, которое будет взято.
При проигрывании с этим помните что версия Системы. Ядро в CTP было взято от снимка в конце августа. Это не соответствует очень чисто никакой конкретной бете IronPython. Много изменений были внесены в ДОЛЛАР с тех пор.
Кроме того, для совместимости с системой CLR v2. Ядро, выпуски IronPython, запускающегося или с беты 4 или с беты 5 теперь, переименовывают все в, это находится в Системном пространстве имен, чтобы быть в пространстве имен Microsoft вместо этого.
Если Вы хотите вплотную образец включая исходный код, приводящий к динамическому объекту, который хранит значение для произвольных свойств в Словаре затем, моя штанга "Первый взгляд на Утиный Ввод в C# 4.0" могла быть правильной для Вас. Я записал, что сообщение, чтобы показать, как динамический объект может быть брошен к интерфейсам со статическим контролем типов. Это имеет полную рабочую реализацию Утки, которая является IDynamicObject, и могут действия как IQuack.
Если Вам нужно больше информации, связываются со мной на моем блоге, и я буду способствовать Вам, столь хороший, как я могу.
Я просто вел блог о том, как сделать это здесь:
http://mikehadlow.blogspot.com/2008/10/dynamic-dispatch-in-c-40.html
Вот то, что я выяснил до сих пор:
Динамическое Время выполнения Языка в настоящее время сохраняется как часть проекта IronPython. Таким образом, это - лучшее место для движения для получения информации.
Самый легкий способ реализовать поддержку класса IDynamicObject, кажется, для получения из Microsoft. Сценарии. Действия. Динамичный и переопределение соответствующие методы, например, метод Вызова для реализации семантики вызова функции. Это похоже на Microsoft. Сценарии. Действия. Динамичный не был включен в CTP, но тот от IronPython 2.0 похож на него, будет работать.
Я все еще неясен на точном значении "параметра" - параметр, но это, кажется, обеспечивает контекст для привязки динамического объекта.
Эта презентация также предоставляет большую информацию о ДОЛЛАРЕ: