翻译正则表达式从JavaScript到ColdFusion
Translate regex from JavaScript to ColdFusion?
大家好,我有我在JavaScript中创建的正则表达式,现在我想在ColdFusion中拥有它们。我在ColdFusion中遇到的几个问题,第一个是空白值。如果变量为空,正则表达式输出的是false
。第二个问题是将这些正则表达式组合在一行中,这将检查我的文本文件的整行。出于某种原因,我的正则表达式忽略了大写/小写。如果我只有小写,我的正则表达式输出为真,即使在这种情况下是不允许的。这是我的正则表达式:
<cfset fileRegex = "^(?i)^ *[a-z][a-z' .,-]{0,49} *'t(?i) *[a-z][a-z' .,-]{0,49} *'t *(0?[1-9]|1[0-2])'/(0?[1-9]|1'd|2'd|3[01])'/(19|20)'d{2} *'t(?i) *([M|F]) *'t(?i) *(0?[0-9]|1[0-2]|[A-Z]{1,2}) *'t *([^'t].{0,50}) *'t(?i) *([A-Z0-9 ,]{1,102})? *'t *'d{10} *('t[^'t]*){22}'t *([0-9]{1,4}) *'t([^'t]*)('t *[A-Z ',.-]{1,50} *)?$">
<cfset myData = "John Terry 1/29/1981 M 0 London NULL 0129198109 609 8000 1 England">
<cfif REFind(fileRegex,myData,true) GT 0>
true<br>
<cfelse>
false<br>
</cfif>
所以在这种情况下,我的数据集中的最后一个词是England
,我的正则表达式应该只接受大写,它没有,第二个问题是,如果我离开这个字段为空,我将得到False
作为回报。最后一个词也是可选的,如果我把它和标签一起擦掉,我应该得到true
。如果有人能帮助解决这个问题,请告诉我。
您的regex需要22列('t[^'t]*){22}
。你可以让它们是可选的(-> ('t[^'t]*){0,22}
), regex将基本工作:
(?i)^ *[a-z][a-z' .,-]{0,49} *'t *[a-z][a-z' .,-]{0,49} *'t *(0?[1-9]|1[0-2])'/(0?[1-9]|1'd|2'd|3[01])'/(19|20)'d{2} *'t *([MF]) *'t *(0?[0-9]|1[0-2]|[A-Z]{1,2}) *'t *([^'t].{0,50}) *'t *([A-Z0-9 ,]{1,102})? *'t *'d{10} *('t[^'t]*){0,22}'t *([0-9]{1,4}) *'t([^'t]*)('t *[A-Z ',.-]{1,50} *)?$
查看regex演示
一些较小的增强:
- 注意你有很多
(?i)
里面,这是不必要的。在模式开始时一个单独的(?i)
就足够了。 -
|
应该被删除,因为它被解析为一个文字管道符号。[M|F]
匹配三个字符中的一个:M
、|
或F
。 - 请检查
/
是否真的应该转义,我怀疑它需要转义,因为这里没有正则表达式分隔符。
[M|F]
中的相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 如何从Java/scala调用js美化程序
- 如何使用json将对象列表从java转换为javascript
- Java脚本时间添加
- WebDriverException:tinyMCE未在selenium Web driver java中定义
- 如何将字符串值从php页面发送到java脚本页面
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- DOM事件通过JSON转换为java
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- java脚本在Chrome和其他浏览器中对LocaleTimeString的不同行为
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- Java-彩票统计解析器
- 如何将变量数据从Java类获取到JavaScript
- Java脚本将URL转换为已保存的URL时出错
- 将这些正则表达式从javascript转换为Java
- 使用createObject (google maps)在coldfusion查询中创建java脚本对象