Вы также можете начать с удаления всех нечисловых символов и затем разбора int:
string mystr = mystr.replaceAll( "[^\\d]", "" );
int number= Integer.parseInt(mystr);
. Но следует предупредить, что это работает только для неотрицательных чисел.
Ограничение веб-сайтов. См. Раздел «Нативные модули» в http://azure.microsoft.com/en-us/documentation/articles/nodejs-use-node-modules-azure-apps/ .
Обходное решение / разрешение - установить все модули в окне разработчика Windows и включить node_modules в качестве части развертывания git.
Недавно я успешно развернул приложение Node.js app / Sails, работающее как веб-приложение Azure, которое опирается на Grunt и поэтому нуждается в поддержке node-gyp. Сначала я изо всех сил пытался получить node-gyp для непрерывного развертывания без включения папки node_modules, но в итоге я преуспел в том, что вы, надеюсь, называете «грациозным разрешением». Необходимые для меня шаги:
"engines": {
"node": "5.4.0",
"npm": "3.3.12"
},
hookTimeout: 60000, // 60 seconds
:: Setup
:: -----
:: ... some default parts omitted
IF NOT DEFINED GRUNT_CMD (
:: Install grunt
echo Installing Grunt
call npm --registry "http://registry.npmjs.org/" install grunt-cli
IF !ERRORLEVEL! NEQ 0 goto error
:: Locally just running "grunt" would also work
SET GRUNT_CMD=node "%DEPLOYMENT_SOURCE%\node_modules\grunt-cli\bin\grunt"
)
goto Deployment
:: Utility Functions
:: -----------------
:SelectNodeVersion
:: ... some default parts omitted
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Deployment
echo Handling node.js deployment.
echo %DEPLOYMENT_SOURCE%
echo 1. Select node version
call :SelectNodeVersion
echo 2. Install npm packages dev dependencies
IF EXIST "%DEPLOYMENT_SOURCE%\package.json" (
pushd "%DEPLOYMENT_SOURCE%"
echo Cleaning NPM cache.
call !NPM_CMD! cache clean
call !NPM_CMD! install --development
IF !ERRORLEVEL! NEQ 0 goto error
popd
)
echo 4. Run grunt prod task
pushd %DEPLOYMENT_SOURCE%
call !GRUNT_CMD! --no-color prod
IF !ERRORLEVEL! NEQ 0 goto error
popd
echo 5. KuduSync
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"
IF !ERRORLEVEL! NEQ 0 goto error
)
echo 6. Install npm packages production
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
pushd %DEPLOYMENT_TARGET%
call !NPM_CMD! install --production
IF !ERRORLEVEL! NEQ 0 goto error
popd
)
echo 3. Update erroneous glob dependency in Grunt
pushd "%DEPLOYMENT_SOURCE%\node_modules\grunt"
call :ExecuteCmd !NPM_CMD! install glob@^6.0.4 --save
IF !ERRORLEVEL! NEQ 0 goto error
popd
Надеюсь, это поможет некоторым из вас там, хотя я знаю, что некоторые из проблем, с которыми я столкнулся, могут быть решены используя современные версии узла и npm. Но так как Azure не в курсе последних версий, это может быть полезно для некоторых из вас.
EDIT:
Относительно:
Node.js versions available on the platform are: 0.6.20, 0.8.2, 0.8.19, 0.8.26, 0.8.27, 0.8.28, 0.10.5, 0.10.18, 0.10.21, 0.10.24, 0.10.26, 0.10.28, 0.10.29, 0.10.31, 0.10.32, 0.10.40, 0.12.0, 0.12.2, 0.12.3, 0.12.6, 4.0.0, 4.1.0, 4.1.2, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 5.0.0, 5.1.1, 5.3.0, 5.4.0, 5.5.0.
Selected node.js version 5.4.0. Use package.json file to choose a different version.
Selected npm version 3.3.12
Updating iisnode.yml at D:\home\site\wwwroot\iisnode.yml
3. Install npm packages
npm WARN deprecated lodash@0.9.2: lodash@<2.0.0 is no longer maintained. Upgrade to lodash@^3.0.0
npm WARN deprecated grunt-lib-contrib@0.7.1: DEPRECATED. See readme: https://github.com/gruntjs/grunt-lib-contrib
npm WARN deprecated lodash@1.0.2: lodash@<2.0.0 is no longer maintained. Upgrade to lodash@^3.0.0
> sails@0.11.4 preinstall D:\home\site\wwwroot\node_modules\.staging\sails-bbe9b0ace9f7789c8522238af14fe27a
> node ./lib/preinstall_npmcheck.js
Sails.js Installation: Checking npm-version successful
npm WARN prefer global grunt-cli@0.1.13 should be installed with -g
> fibers@1.0.8 install D:\home\site\wwwroot\node_modules\fibers
> node build.js || nodejs build.js
D:\home\site\wwwroot\node_modules\fibers>if not defined npm_config_node_gyp (node "c:\Program Files (x86)\npm\3.3.12\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild --release ) else (node rebuild --release )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
fibers.cc
coroutine.cc
..\src\fibers.cc : fatal error C1902: Program database manager mismatch; please check your installation [D:\home\site\wwwroot\node_modules\fibers\build\fibers.vcxproj]
..\src\coroutine.cc : fatal error C1902: Program database manager mismatch; please check your installation [D:\home\site\wwwroot\node_modules\fibers\build\fibers.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (c:\Program Files (x86)\npm\3.3.12\node_modules\npm\node_modules\node-gyp\lib\build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "D:\\Program Files (x86)\\nodejs\\4.2.3\\node.exe" "c:\\Program Files (x86)\\npm\\3.3.12\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--release"
gyp ERR! cwd D:\home\site\wwwroot\node_modules\fibers
gyp ERR! node -v v4.2.3
gyp ERR! node-gyp -v v3.0.3
Build failed
Как вы можете видеть, она сначала указывает: Selected node.js version 5.4.0. Use package.json file to choose a different version.
в соответствии с файлом Package.json. Однако позже в сообщении об ошибке это, похоже, изменилось: gyp ERR! node -v v4.2.3
Для меня неясно, почему эта ошибка возникает, поскольку версия в файле Package.json должна быть перезаписана по умолчанию в настройках приложения. Поэтому, конечно, установите оба параметра в достаточно высокую версию (не уверен, когда проблема с узлом-gyp была решена, но 5.4.0, похоже, работает нормально!).