1

我目前正在尝试验证字符串是否完全正确,因为我正在使用 CF10 构建电子表格导入器。

我的用户将输入以下内容之一。

  1. NULL,这将等同于假
  2. TRUE 显然等于 true
  3. FALSE 再次等同于假。

我正在尝试使用isValid('boolean',variable.data)来验证数据是否实际上是布尔字符串。但是,在阅读了很多帖子之后,我可以看到它会验证true它是否为正数以及false是否为负数等。

我想知道是否有人有一个简单的解决方法来轻松地让布尔验证为字符串工作?这更像是一个正则表达式场景以使其正常工作吗?

非常感谢任何帮助。

4

3 回答 3

8

假设您的意思是文字字符串“NULL”,一种选择是使用列表函数。搜索允许值的列表,即“true,false,null”。如果找到该条目,则它是有效的:

<cfif listFindNoCase("true,false,null", theValue)>
    this is a valid boolean value
<cfelse>
    not found. do something here...
</cfif>

然后一个简单的字符串比较将返回false除文字字符串“true”之外的所有内容:

  isTrue = compareNoCase(e, "true") eq 0 ? true : false`
于 2013-09-17T08:29:53.180 回答
4

如果您需要评估一个字符串是“真”还是“假”,那么您不是在进行布尔比较,而是在进行字符串比较。

所以为此,你会想要使用compare()or compareNoCase()(取决于你需要有多严格)。

于 2013-09-17T08:25:39.520 回答
0

你可以做一些逻辑或者我错过了什么。

<cfset booleanResult = enteredValue eq 'TRUE' ? true : false />
于 2013-09-17T08:01:50.657 回答