如何使用Javascript/JQuery检查字符串的形式是否为10 * 10 * 10 * 10,然后进行数学运算
How do I check if a string is of the form 10*10*10 using Javascript/JQuery and then do math
我正在尝试根据某些纸箱尺寸的输入动态计算体积。
例如,对于尺寸为10cm x 10cm x 10cm的纸箱,用户在文本输入中输入10 * 10 * 10。
然后,我的 javascript 将检查输入是否与此模式匹配,并进行数学运算并用结果填充另一个输入
。 10 x 10 x 10 = 1000。我想我需要使用我没有太多经验的正则表达式。下面的代码在比赛阶段停止工作。(无效的正则表达式:/d+*d+*d+/:无需重复)虽然我很确定我不知道在那之后我在做什么。
谁能帮忙?
carton_dimensions=$(this).val();
var pattern = "('d+)'*('d+)'*('d+)";
var result = carton_dimensions.match(pattern);
if(result){
volume=result[0]*result[1]*result[2];
}
"('d+)'*('d+)'*('d+)"
^ ^
是字符串文本。你需要的是一个正则表达式文字:
/('d+)'*('d+)'*('d+)/
^ ^
或者,您可以使用 RegExp
构造函数,但随后您必须处理字符串文本中的特殊字符转义,以便该值等效于您打算使用的正则表达式:
new RegExp("(''d+)''*(''d+)''*(''d+)")
首先,pattern
被忧心忡忡地声明,它应该没有"
,但/
:
var pattern = /('d+)'*('d+)'*('d+)/;
此外,您要查找的结果位于索引 1、2 和 3 中:
volume = result[1] * result[2] * result[3];
因此,您的最终代码必须如下所示:
carton_dimensions = $("input").val();
var pattern = /('d+)'*('d+)'*('d+)/;
var result = carton_dimensions.match(pattern);
if(result){
volume = result[1] * result[2] * result[3];
}
这是一个带有工作示例的 JSFiddle。
对于计算,你可以像这样使用 javascript 的 eval:
var answer = eval(result[0] + '*' + result[1] + '*' + result[2]);
而且由于您正在验证输入,因此您应该是安全的。
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- Javascript运行php文件,然后下载文件
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 弹出窗口出现,然后退出
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 将值输入到对象,然后该对象推送到数组
- 如何临时暂停浏览器渲染,然后恢复整个页面
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 滚动然后捕捉到顶部而不是取消捕捉
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 点击相同的按钮打开模型,然后提交表单
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 将display属性更改为visible flicks,然后再次消失
- 什么是“;选择“;然后触发事件
- 如何使用Javascript/JQuery检查字符串的形式是否为10 * 10 * 10 * 10,然后进行数学运算
- 将 IP 地址拆分为八位字节,然后对每个八位字节进行一些数学运算
- 如何将计算器运算元素转换为字符串以获得解,然后将解返回到元素中