Как сопоставить строку, не содержащую X, с регулярными выражениями ColdFusion? - PullRequest
0 голосов
/ 04 августа 2010

Я задавал этот вопрос ранее, но он получил отрицательный голос, поэтому я переписываю его. У меня есть:

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

Мне нужно изменить myExpression, чтобы он возвращал значение, отличное от нуля, если в myString НЕ указано X, и 0, если в myString есть X.

Ответы [ 4 ]

3 голосов
/ 04 августа 2010

Пожалуйста, проверьте следующие ссылки:

  1. http://www.petefreitag.com/item/517.cfm
  2. http://www.adobe.com/livedocs/coldfusion/6/Developing_ColdFusion_MX_Applications_with_CFML/regexp3.htm

надеюсь, что это поможет вам.

2 голосов
/ 04 августа 2010
<cfset string = "abc" />  
<cfoutput>#refind( "^[^X]+$" , string )#</cfoutput> // 1 

<cfset string = "abcX" /> 
<cfoutput>#refind( "^[^X]+$" , string )#</cfoutput> // 0
1 голос
/ 04 августа 2010

, если ваше выражение всегда является символом или набором символов, тогда вы хотите

<cfset myExpression ="[^X]">

1 голос
/ 04 августа 2010

Я создаю таблицу проверки

Итак, первое, что нужно проверить, это то, что вы не изобретаете колесо заново - функция isValid можетпроверять различные типы (кредитная карта, электронная почта, почтовый индекс и т. д.).

Он также предоставляет способ сопоставления с шаблоном регулярного выражения, например:

<cfif isValid('regex',String,RegexPattern) >

Что-то, о чем нужно знать: документация для isValid утверждает, что он использует регулярное выражение JavaScript, которое (если оно истинно) отличается от стандартного регулярного выражения Apache ORO, которое CF использует для всего остального.

Для прямой версии регулярного выражениячто вы делали (который использует Apache ORO), вы бы использовали:

<cfif refind(RegexPattern,String) >

Непонятно, о чем идет речь с вашим битом returnValue, хотя, если вы возвращаете логическое значение из функции, отключите cfif и просто выполните одно из следующих действий:

<cfreturn isValid('regex',String,RegexPattern) />

<cfreturn refind(RegexPattern,String) />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...