【发布时间】:2017-06-20 18:36:56
【问题描述】:
我想通过在 sTest_Val_1 ("30") 变量中输入一个值来获得 True 或 False 值。
所以我们尝试拆分和分离变量和运算符。
一开始我使用了以下源码。
但是,这个源代码导致了问题,因为它也是从 sTest_Val_1 中拆分“_”。
由于变量中的特殊字符,我无法正确拆分。所以我不能将“30”的值放入变量中。
var expression = "sTest_Val_1 < 50"; //or "sTest_Val_1<50"
var copy = expression; //"sTest_Val_1 < 50"
expression = expression.replace(/[0-9a-zA-Z]+/g, "#"); //"#_#_# < #"
var numbers = copy.split(/[^0-9a-zA-Z\.]+/); //[sTest,Val,1,50]
var operators = expression.split("#").filter(function (n) { return n }); //[_,_, < ]
var result = [];
var sRst = "";
result.push(numbers[i]);
sRst += numbers[i];
if (i < operators.length) {
result.push(operators[i]);
sRst += operators[i];
console.log(sRst);
return eval(sRst); // I want True, False
sTest_Val_1 的值在另一个页面中定义。 (我在加载第一页时将此值传递给 javascript 对象。)
string sTest_Val_1 = "30";
string sTest_Val_2 = "30";
string sTimeVal_1 = "65380";
// ....
"sTest_Val_1" 该值的第一个字符只能包含字母字符。
但是字符的长度是随机的,字符中的特殊字符也是随机的。 (、+、- 和 = 不包括在内。)
我的英语不够好。请理解。
【问题讨论】:
-
按空格分割?
-
但我不能确定是否会输入空格。
-
就不能按运营商拆分吗?
-
按算子拆分,那么如何得到算子?
-
在拆分之前,您正则表达式以捕获运算符。
标签: javascript regex