如何将不包含X的字符串与ColdFusion正则表达式匹配?

时间:2010-08-04 19:24:22

标签: regex coldfusion

我之前问过this question,但它得到了否定投票,所以我重写它。 我有:

<cfset myExpression = "X">
#REFind(myExpression,myString)#

我需要更改myExpression,以便在myString中没有X时返回0以外的值,如果myString中有X则返回0。

4 个答案:

答案 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]">