我试图将浮点十进制数与正则表达式匹配.小数点前可能有也可能没有数字,小数可能存在也可能不存在,如果存在则可能有或没有数字.(对于此应用程序,不允许使用前导+/-或尾随"E123").我写了这个正则表达式:
/^([\d]*)(\.([\d]*))?$/
Run Code Online (Sandbox Code Playgroud)
哪个正确匹配以下内容:
1
1.
1.23
.23
Run Code Online (Sandbox Code Playgroud)
但是,这也匹配空字符串或只是小数点的字符串,这是我不想要的.
目前我在运行正则表达式后检查$ 1或$ 3的长度大于0.如果不是,则无效.有没有办法可以在正则表达式中直接执行此操作?
我是jQueryUI的新手,我想我忽略了一些非常基本的东西......
我使用ThemeRoller下载了一个jQueryUI主题,它也生成了一个jQueryUI javascript文件.我宁愿使用Google(http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.3/jquery-ui.min.js)托管的文件,但是当我这样做时,主题就不会被选中.我发现很难相信我必须使用ThemeRoller生成的脚本,因为如果是这种情况那么谷歌托管的jQueryUI将完全没用!我在这做错了什么?
所以我从Themeroller下载了"Smoothness"主题如下:
C:\jqueryui_test).现在,我test.html在同一目录中创建了一个非常简单的文件,其中包含以下内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link type="text/css" href="ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.3/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
$("#datepicker").datepicker({inline: true});
});
</script>
</head>
<body>
<div id="datepicker"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我test.html在浏览器中打开时,日期选择器组件没有样式(没有背景图像或任何东西).但是,如果我将Google托管的jquery-ui.min.js行更改为ThemeRoller生成的行(<script type="text/javascript" src="jquery.ui.all.js"></script>),则页面将按预期进行样式设置.
更新 我接受的答案并非真正的最终解决方案,但它让我走上了正确的道路.事实证明,如果你只是下载JQueryUI,你会得到很多东西.Google托管的文件只能替换"jquery.ui.all.js"文件,但您仍需要"themes"目录.另外,Themeroller主题在1.5.3(甚至是"1.5.3用户"链接)上也不能很好地工作.由于这只是一个管理页面,我只是使用了内置的"flora"主题.看起来jQuery UI 1.6要好得多,但它还没有"稳定"发布(截至本文写作......).
在Perl中,localtime取一个Unix时间戳并返回年/月/日/小时/分钟/秒等.我正在寻找相反的localtime:我有部分,我想从它们构建一个unix时间戳.
我试图在Node.js 4.3中运行的AWS Lambda函数中使用加密的环境变量,但是在尝试解密变量时代码会挂起.我没有得到任何错误消息,它只是超时.这是我尝试过的:
我在与Lambda相同的区域中创建了加密密钥,并确保Lambda运行的角色可以访问密钥.(我甚至试过让角色完全掌控钥匙.)
创建Lambda时,我启用加密助手,选择我的加密密钥,并加密环境变量:
接下来,我单击"代码"按钮,它给出了我应该在运行时处理解密的javascript代码.这是代码 - 我做的唯一更改是添加console.log语句,我添加了一个try/catch:
"use strict";
const AWS = require('aws-sdk');
const encrypted = process.env['DBPASS'];
let decrypted;
function processEvent(event, context, callback) {
console.log("Decrypted: " + decrypted);
callback();
}
exports.handler = (event, context, callback) => {
if (decrypted) {
console.log('data is already decrypted');
processEvent(event, context, callback);
} else {
console.log('data is NOT already decrypted: ' + encrypted);
// Decrypt code should run once and variables stored outside of the function
// handler so that these are …Run Code Online (Sandbox Code Playgroud) 在 TypeScript 中,我定义了一个enum,然后我想要一个函数接受一个参数,该参数的值是枚举的值之一。然而,TypeScript 似乎没有对值进行任何验证,并且允许枚举之外的值。有没有办法做到这一点?
enum myenum {
hello = 1,
world = 2,
}
const myfunc = (num:myenum):void => console.log(`num=${num}`);
myfunc(1); // num=1 (expected)
myfunc(myenum.hello); // num=1 (expected)
//THE ISSUE: I'm expecting next line to be a TS compile error, but it is not
myfunc(7); // num=7
Run Code Online (Sandbox Code Playgroud)
如果我使用 atype而不是enum我可以获得与我正在寻找的类似的东西,但我失去了枚举的一些功能。
type mytype = 1|2;
const myfunc = (num:mytype):void => console.log(`num=${num}`);
myfunc(1);
myfunc(7); //TS Compile Error: Argument of type '7' is not assignable to …Run Code Online (Sandbox Code Playgroud) 我有两个申请.我需要从应用程序a到应用程序b进行单点登录.
我想使用网络服务.我想知道我该如何处理这种方法.
任何人都可以建议吗?
我cfloop在一个查询中.我想获得一个属性,但是直到运行时我才知道该属性是什么.使用#qryResult[MyAttr]#失败并显示错误"复杂对象类型无法转换为简单值".这样做的语法是什么?
这是一个简化的例子:
<cfquery datasource="TestSource" name="qryResult">
SELECT * FROM MyTable
</cfquery>
<cfloop query="qryResult">
<cfset MyAttr="autoid" />
<cfoutput>
Test 1: #qryResult.autoid# <br/> <!--- succeeds --->
Test 2: #qryResult[MyAttr]# <br/> <!--- fails --->
</cfoutput>
</cfloop>
Run Code Online (Sandbox Code Playgroud) 我在ColdFusion中访问映射驱动器时遇到问题.我已\\server\files\sharing映射到z:\.如果我运行此代码,它表示该目录存在完整路径但不存在映射的目录:
<cfscript>
fullPath = "\\server\files\sharing\reports";
mappedPath = "z:\reports";
WriteOutput("fullPath exists: #DirectoryExists(fullPath)#<br/>"); //YES
WriteOutput("mappedPath exists: #DirectoryExists(mappedPath)#"); //NO
</cfscript>
Run Code Online (Sandbox Code Playgroud)
我做了一些谷歌搜索并找到了一些有同样问题的人,但解决方案始终是使用完整路径.ColdFusion是否有理由无法查看或访问映射驱动器?如果是这样,是否有任何变通方法(可能是系统调用以获取映射驱动器的完整路径)?
更新:我找到了解决方法.如果我提交一个虚拟表单字段和文件,它可以工作.这是一个ColdFusion错误,还是HTTP规范中有些内容表明表单必须包含至少一个非文件表单字段?
更新2:我确信这是一个ColdFusion cfhttp错误.这是基于Leigh的答案以及我使用下面的代码使用javascript 仅使用文件元素提交表单的事实,并且它工作正常:
<form enctype="multipart/form-data" action="<cfoutput>#CGI.PATH_INFO#</cfoutput>" method="POST" name="theForm">
<input name="theFile" type="file" /><br/>
</form>
<a href="#" onclick="document.theForm.submit()">submit</a>
Run Code Online (Sandbox Code Playgroud)
我在将文件从ColdFusion服务器上传到另一个Web服务器时遇到了问题.似乎cfhttpparam type="file"是不加选择地在文件末尾添加换行符(回车符和换行符).这打破了二进制文件.这不,当我手动上传通过表单字段的文件发生.我尝试过有和没有mimetype参数,我试过用各种二进制格式(exe,zip,jpg)说谎mimetype,但没有任何效果.是否有一些我缺少的参数,或者这是ColdFusion中的一个错误?(我在WinXP上运行CF 8.0.1.195765.)
下面是我正在使用的测试代码,它只是将文件上传到同一目录.手动上载有效,但基于服务器的上载最终会将CRLF附加到文件中.
<cfset MyDir = "C:\test" />
<cfset MyFile = "test.zip" />
<cfif IsDefined("Form.TheFile")>
<cffile action="upload" fileField="theFile" destination="#MyDir#" nameConflict="MakeUnique" />
<cfelse>
<cfhttp url="http://#CGI.SERVER_NAME##CGI.SCRIPT_NAME#" method="POST" throwOnError="Yes">
<cfhttpparam type="file" name="theFile" file="#MyDir#\#MyFile#" />
</cfhttp>
</cfif>
<html><body>
<h2>Manual upload</h2>
<form enctype="multipart/form-data" action="<cfoutput>#CGI.PATH_INFO#</cfoutput>" method="POST">
<input name="theFile" type="file" /><br/>
<input type="submit" value="Submit" />
</form>
</body></html>
Run Code Online (Sandbox Code Playgroud) 我遇到过一种情况,Javascript 字符串插值没有给出与字符串连接相同的结果。
这是显示差异的代码的简化版本:
const mmt = moment();
console.log('concatenated: ' + mmt); // "concatenated: 1651070909974"
console.log(`interpolated: ${mmt}`); // "interpolated: Wed Apr 27 2022 10:48:29 GMT-0400"
console.log('mmt.valueOf(): ' + mmt.valueOf()); // "mmt.valueOf(): 1651070909974"
console.log('mmt.toString(): ' + mmt.toString()); // "mmt.toString(): Wed Apr 27 2022 10:48:29 GMT-0400"
Run Code Online (Sandbox Code Playgroud)
所以我的第一反应是,这是由于.toString()和的差异造成.valueOf()的,所以我做了一个小测试对象来验证:
const obj = {
toString: () => 'toString',
valueOf: () => 'valueOf',
};
console.log('concatenated: ' + obj); // "concatenated: valueOf"
console.log(`interpolated: ${obj}`); // "interpolated: toString"
console.log('obj.valueOf(): ' + obj.valueOf()); // "obj.valueOf(): valueOf" …Run Code Online (Sandbox Code Playgroud) coldfusion ×3
aws-lambda ×1
aws-sdk ×1
cfloop ×1
ecmascript-6 ×1
encryption ×1
enums ×1
file ×1
file-upload ×1
forms ×1
java ×1
javascript ×1
jquery ×1
jquery-ui ×1
networking ×1
node.js ×1
perl ×1
regex ×1
syntax ×1
themeroller ×1
timestamp ×1
typescript ×1
web-services ×1
windows ×1