C# 验证JavaScript中的字符串和类型转换
我来自C#背景。我目前正在用JavaScript进行一些开发。我有一些传入的值。然而,我不确定如何“最好”地验证和转换它们。例如,在C#中,我有如下代码:C# 验证JavaScript中的字符串和类型转换,c#,javascript,C#,Javascript,我来自C#背景。我目前正在用JavaScript进行一些开发。我有一些传入的值。然而,我不确定如何“最好”地验证和转换它们。例如,在C#中,我有如下代码: Guid id = Guid.Empty; if (Guid.TryParse(getIDString(), out id) == false) throw new Exception("Invalid GUID"); int year = 0; if (Int32.TryParse(getYearString(), out year)
Guid id = Guid.Empty;
if (Guid.TryParse(getIDString(), out id) == false)
throw new Exception("Invalid GUID");
int year = 0;
if (Int32.TryParse(getYearString(), out year) == false)
throw new Exception("Invalid Year");
if (String.IsNullOrWhiteSpace(getStringValue()))
throw new Exception("String is required.");
DateTime createdOn = DateTime.UtcNow;
if (DateTime.TryParse(getDateString(), out createdOn) == false)
throw new Exception("Invalid Creation Date");
decimal? latitude = null;
decimal temp = 0;
if (Decimal.TryParse(GetLatitudeString(), out temp) == false)
throw new Exception("Invalid latitude");
else
latitude = temp;
我觉得将代码转换为JavaScript有两个不同的问题:1。解析字符串和2。类型转换
在JavaScript中,我不知道如何执行String.IsNullOrEmpty()
。我认为在lodash中会有类似的功能。然而,我没有看到一个。在我理解如何最好地编写这段代码的过程中,整个null与undefined的关系有点纠结。即使如此,我也不确定在JavaScript中尝试将字符串中的值转换为有意义的数据类型的推荐方法是什么。如果转换不起作用,我想抛出一个错误。然而,我不知道如何在JavaScript中做到这一点
谢谢你的帮助 Javascript没有静态类型。如果您完全控制代码及其使用方式,这可能不是问题。但是如果您的代码是从外部调用的,并且您依赖某些变量来拥有某些类型,那么您可能必须使用
typeof variable
检查它们
- GUID:javascript中没有GUID这样的类型,但可以使用正则表达式检查GUID
- int/decimal:有
和parseInt()
函数。然后您应该使用parseFloat()
(不是数字)进行检查isNaN
- 字符串:一个非常简单的检查可能是
,对于未定义、null和0,该变量将返回true!变量
- 日期:您可以检查
是否为NaN新日期(变量).getTime()
- 异常处理/抛出:Javascript像c#一样具有try/catch和throw
- undefined vs.null:除非处于严格模式,否则不需要预先声明变量。未定义表示变量未在当前范围内定义。Null表示声明了它,但为其分配了Null值
int
和decimal
片段不能直接翻译成JavaScript,因为只有一个数字
类型对我来说==false
似乎是C的一种奇怪用法。