我之前问过this question,但它得到了否定投票,所以我重写它。 我有:
<cfset myExpression = "X">
#REFind(myExpression,myString)#
我需要更改myExpression,以便在myString中没有X时返回0以外的值,如果myString中有X则返回0。
答案 0 :(得分:3)
请检查以下链接:
答案 1 :(得分:2)
<cfset string = "abc" />
<cfoutput>#refind( "^[^X]+$" , string )#</cfoutput> // 1
<cfset string = "abcX" />
<cfoutput>#refind( "^[^X]+$" , string )#</cfoutput> // 0
答案 2 :(得分:1)
我正在构建验证表
嗯,首先要检查的是你没有重新发明轮子 - isValid功能可以验证各种类型(信用卡,电子邮件,邮政编码等)。
它还提供了一种匹配正则表达式模式的方法,如下所示:
<cfif isValid('regex',String,RegexPattern) >
需要注意的事项:documentation for isValid声称它使用JavaScript正则表达式,如果为真,则与CF用于其他所有内容的默认Apache ORO正则表达式不同。
对于您正在做的直接正则表达式版本(使用Apache ORO),您将使用:
<cfif refind(RegexPattern,String) >
目前还不清楚你对returnValue
位的看法,但是如果你从一个函数返回一个布尔值,就抛弃cfif
而只是做其中一个:
<cfreturn isValid('regex',String,RegexPattern) />
<cfreturn refind(RegexPattern,String) />
答案 3 :(得分:1)
如果你的表达式总是一个字符或一组字符,那么你想要
<cfset myExpression ="[^X]">