Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >埃菲尔正则表达式验证

埃菲尔正则表达式验证
EN

Stack Overflow用户
提问于 2011-03-26 04:16:33
回答 2查看 707关注 0票数 1

如何为某个字符串创建正则表达式?您能在断言(代码的前提部分)中这样做吗?

我一直在谷歌搜索,但没有任何令人信服的东西。

问题是:

在DEPARTMENT (我们正在研究的类)创建过程中添加一个先决条件,以确保电话号码是有效的。有三种可能有效的电话号码格式。一个有效的电话号码由以下之一组成:

  • 8位数字,其中第一位是非零
  • (一个前导零),一个是单个非零位区号,然后是八位数字,第一个是非零的
  • a‘+’,然后是一个两位的国家代码,然后是一个单数的非零数字的区号,然后是八位数,其中第一个是非零的

在验证电话号码时,任何嵌入的空格都将被忽略。

作为解决此问题的一部分,向系统中添加PHONE_NUMBER类是可以接受的,但不是必需的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-27 23:26:37

有几个不同的问题需要回答:

  1. 如何检查给定字符串是否匹配埃菲尔中指定的正则表达式?可以使用Gobo库中的类RX_PCRE_MATCHER。特性compile允许设置所需的正则表达式,而功能recognizes允许测试字符串是否匹配。
  2. 如何为给定的电话号码规范编写正则表达式?虽然我还没有检查过,但是像"(|0[1-9]|\+[0-9]{2}[1-9])[1-9][0-8]{7}"这样的事情应该做。在正则表达式本身中考虑中间空格是可能的,但是在传递给正则表达式匹配器之前,通过在输入字符串上应用prune_all (' ')来消除它们要容易得多。
  3. 如何在创建过程中添加一个先决条件来验证该参数是否满足它?让我们假设,从前面的项中,我们构造了一个函数is_phone_number,它接受一个STRING,并返回一个BOOLEAN,该BOOLEAN指示指定的字符串是否代表一个有效的电话号码。一个简单的解决方案是编写

制造(电话:字符串)要求is_phone_number (电话)。

并在类is_phone_number本身中有一个特性DEPARTMENT。但这使我们无法在调用此创建过程之前检查指定的字符串是否表示电话号码。因此,将is_phone_number移动到类DEPARTMENT将继承的类PHONE_NUMBER_VALIDATOR是有意义的。类似地,如果is_phone_number.需要根据指定的规则验证字符串,则可以继承PHONE_NUMBER_VALIDATOR并重用特性PHONE_NUMBER_VALIDATOR

票数 2
EN

Stack Overflow用户

发布于 2012-04-02 15:31:29

Halikal确实解决了这个问题,但直到现在还没有分享.

这在eiffelStudio 6.2中是可行的(注-这是gobo)

http://se.inf.ethz.ch/old/people/leitner/gobo_guidelines/naming_conventions.html

一个有效的电话号码由以下之一组成:

  • 8位,其中第一位是非零
  • (一个前导零),一个是单个非零数字的区号,然后是八位,第一个是非零的
  • ,一个是前导+,然后是一个两位的国家代码,然后是一个单一的非零数字的区域代码,然后是八位,其中第一个是非零的

在验证电话号码时,任何嵌入的空格都将被忽略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require                  -- 040 is ascii hex space
valid_phone: 
  match(phone, "^\040*[1-9]\040*([0-9]\040*){7}$") = TRUE or
  match(phone, "^\040*0\040*([1-9]\040*){2}([0-9]\040*){7}$") = TRUE or
  match(phone, "^\040*\+\040*([0-9]\040*){2}([1-9]\040*){2}([0-9]\040*){7}$") = TRUE


feature --Regular Expression check
  match(text: STRING; pattern: STRING): BOOLEAN is
        -- checks whether 'text' matches a regular expression 'pattern'
    require
      text /= Void
      pattern /= Void
    local
      dfa: LX_DFA_REGULAR_EXPRESSION         --There's the Trick!
      do
        create dfa.make
        dfa.compile(pattern, True)           --There's the Trick!
        check      -- regex must be compiled before we can use it
          dfa.is_compiled;
        end
        Result := dfa.matches(text)
     -- debug: make sure of which pattern
        if dfa.matches (text) then
          io.putstring(text + " matches " + pattern + "%N")
        end
      end
  end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5442261

复制
相关文章
正则表达式-日期验证和邮箱验证
日期验证 $pattern='/^\d{4}[-](0?[1-9]|1[012])[-](0?[1-9]|[12][0-9]|3[01])$/'; 邮箱验证 $pattern='/^[a-zA-Z
week
2018/08/24
1.9K0
验证常用正则表达式
1.日期时间验证,支持闰年 支持格式:YYYY/MM/DD, YYYY-MM-DD, YYYY_MM_DD, YYYY.MM.DD 1 var reg = /((^((1[8-9]\d{2})|([2
就只是小茗
2018/03/07
1.1K0
正则表达式验证汇总
一、收集1  (转自https://blog.csdn.net/jumtre/article/details/13775351)
xing.org1^
2018/10/10
1.2K0
正则表达式——表单验证
代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实验</title> <style type="text/css"> /*该元素获得焦点时,不出现虚线框(或高亮框)*/ *:focus{ outline:none; } form{ width: 750px; height: 500px; background-color: #FFC0CB; positi
王凡汎
2020/04/02
1.2K0
JS正则表达式验证大全
该文介绍了JS正则表达式的各种用法,包括验证数字、验证邮箱、验证URL、验证电话号码和身份证号等。
I Teach You 我教你
2018/01/02
10.2K0
js验证手机号的正则表达式_js正则表达式验证数字
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
7.3K0
js验证邮箱的正则表达式_验证手机号的正则表达式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
4.6K0
js验证邮箱的正则表达式_验证手机号的正则表达式
表单验证和正则表达式
第一部分:form表单基础 表单验证使用onblur还是onchange. JavaScript中的正则表达式 提示:在JavaScript代码中,函数需要传入的参数是一个对象时,在函数主体body中一定需要对这个参数进行判断是否为null。 表单验证的作用:把输入的表单数据传入给JavaScript代码进行验证,可以让网络应用程序更加可靠,也能减少服务器的负担,同时减少客户端与服务器的带宽。 form表单常见需要验证的字段: Message(字符串),ZIP code(邮政编码),日期(date),Pho
八哥
2018/01/18
2K0
vue 正则表达式验证_vue表单自定义验证
1如果你是单独建的js文件 先引入正则表达式文件才进行下一步 或者直接在组件内写正则
全栈程序员站长
2022/11/01
7190
Java正则表达式验证工具类
import java.util.regex.Matcher; import java.util.regex.Pattern; /** 验证工具类 @author admin / public c
大师级码师
2021/10/27
9200
常用的JavaScript验证正则表达式
匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
用户7108768
2021/09/22
8070
JavaScript表单验证和正则表达式
JavaScript表单验证 分为四类:   1.非空验证     常用于用户名等   2.相等验证     常用于验证两次输入的密码   3.范围验证     常用于年龄等   4.正则验证    
二十三年蝉
2018/02/27
2.2K0
JavaScript表单验证和正则表达式
在线正则表达式验证工具:Regexpal
Regexpal 是一个基于 Javascript 的在线正则表达式验证工具,对于需要经常使用正则的程序员来说,这是个非常实用的工具。
Denis
2023/04/14
1.1K0
在线正则表达式验证工具:Regexpal
验证email地址的正则表达式
$email = "test@ansoncheung.com"; if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) { echo "Your email is ok."; } else { echo "Wrong email address format"; }
艳艳代码杂货店
2021/10/27
1.1K0
常用的JavaScript验证正则表达式
匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
大师级码师
2021/10/27
9020
java验证电话号码的正则_html注册验证正则表达式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
9150
java验证电话号码的正则_html注册验证正则表达式
验证手机号码的正则表达式_正则表达式验证手机号码格式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/29
1K0
验证手机号码的正则表达式_正则表达式验证手机号码格式
jquery正则表达式验证邮箱_正则表达式如何判断邮箱
然后我的表单就一直没法成功调用这个函数,后面我发现,这里的跟java的不一样,reg里的正则表达式必须得用 ‘ / ‘,双引号赋值它不识别,还有下面调用test函数,上面if语句里面验证邮箱是否正确,用的email.test(reg),它打开网页还是没有提示。得像下面这个才能正常调用test。
全栈程序员站长
2022/11/05
1.4K0
jquery正则表达式验证邮箱_正则表达式如何判断邮箱
总结 Python 常见的验证正则表达式
正则表达式(Regular Expression)通常被用来检索、替换那些符合某个模式(规则)的文本。
AirPython
2021/01/05
1.9K0
总结 Python 常见的验证正则表达式
图片格式类型验证正则表达式
图片格式类型验证正则表达式: 上传图片的时候,一般会限定图片的上传格式,下面就介绍一下和实现才功能。 代码实例如下:
大师级码师
2021/10/27
1.4K0

相似问题

埃菲尔:埃菲尔有表达双重含义的方法吗?

14

埃菲尔:正则表达式--如何进行分组

10

埃菲尔:类似前兆

20

创建动态对象(埃菲尔)

27

埃菲尔:任何默认的语义

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文