天道酬勤,学无止境

regular expression not to allow zero

regular expression not to allow zero

it should allow 0.0000001 as value but should not allow to enter 0.

I need validator not javascript

标签

评论

I think all you need is this ^(?=.*[1-9])\d*\.?\d*$

But, you could get fancy and allow only a single leading zero if its before a decimal point.
^(?=.*[1-9])(?:[1-9]\d*\.?|0?\.)\d*$

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
     ControlToValidate="TextBox1" ErrorMessage="Input is not valid." 
     ValidationExpression="^(?=.*[1-9])(?:[1-9]\d*\.?|0?\.)\d*$"></asp:RegularExpressionValidator>
<asp:Button ID="Button1" runat="server" Text="Button" />

a regexp like that?

       ([1-9](\.[0-9]+)?)|(0\.[0-9]*[1-9])

looks like working ;-)

if you remove the braces it looks more understandable:

       [1-9](\.[0-9]+)? | 0\.[0-9]*[1-9]

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • What's the regular expression for positive whole numbers only? (zero is not allowed)
    What's the regular expression for positive whole numbers only? (zero is not allowed) I was able to get the regular expression for numbers only which is ^\d+$. I've been trying to look for one online but it's already been an hour so I've decided to post it here on Stack Overflow. matches: 1 || 2 || 444 || 9000 || 012 non-matches: 9.2 || -90
  • 正则表达式将百分比与十进制相匹配?(Regular expression to match a percentage with decimal?)
    问题 我正在尝试构建一个正则表达式(.NET),以匹配具有4个小数位的百分比。 小数点后4位是必需的。 范围如下: 0.0001 to 100.0000 到目前为止,我想出了: (?:[^0]+[1-100]{1,3})\.(?:\d{4}) 但是,我不确定如何向此表达式添加其他一些要求。 我需要: 小数点前没有前导零。 允许42.4214,不允许042.4214。 允许1.0000,但不允许001.0000。 等等.. 小数点前最多允许3个字符,且不带前导零。 如果小数点后的数字为100,则不允许小数点后的数字为0000以外的任何数字,因此允许100.0000,但不允许100.0135。 (使用正则表达式是否有可能?) 感谢您的帮助! 回答1 只需将100.0000可能性作为一个单独的案例处理。 轻松匹配( 100\.0000 ),轻松匹配其余部分( [1-9]?\d\.\d{4} ),因此将两者交替显示,您将得到: ^(100\.0000|[1-9]?\d\.\d{4})$ (假设您希望将其作为全文,否则忽略^和$ 。 回答2 我会做这样的事情: ^((([0-9]|[1-9]\d)\.\d{4})|100\.0000)$ 证明 回答3 实际操作: ^(0|[1-9]\d?)\.\d{4}|100\.0000$ 火柴: 0.0001 100.0000 42.4214 1
  • Regular expression to match a percentage with decimal?
    I'm attempting to build a regular expression (.NET) to match a percentage with 4 decimal places. The 4 decimal places are required. The range looks like: 0.0001 to 100.0000 So far, I've come up with: (?:[^0]+[1-100]{1,3})\.(?:\d{4}) However, I'm a bit unsure on how to add a few other requirements to this expression. I need: No leading zeroes before the decimal point. 42.4214 is allowed, 042.4214 is not. 1.0000 is allowed but 001.0000 is not. Etc.. Up to 3 characters allowed before decimal without leading zeroes. If the number before the decimal is 100, do not allow the number after the decimal
  • Regular expression for numbers without leading zeros
    I need a regular expression to match any number from 0 to 99. Leading zeros may not be included, this means that f.ex. 05 is not allowed. I know how to match 1-99, but do not get the 0 included. My regular expression for 1-99 is ^[1-9][0-9]?$
  • 如何编写一个只允许字母、数字和特殊字符的正则表达式,中间永远不会结束(How to Write a Regular Expression that allows only letters, numbers and special characters only i the middle never in the end)
    问题 需要一些正则表达式的帮助。 到目前为止,我的代码允许使用有限数量的特殊字符。 但是,我不知道如何让它只允许他们在中间而不是最后。 有人可以帮我弄清楚那部分吗? 这是我在 c# 中使用的代码: Regex uRLToVal= new Regex("^[A-Za-z0-9-_.+!*]*$"); if (!uRLToVal.IsMatch(this.mainURL)) { results.AddPropertyError("Your Entry can only contain letters, numbers, underscores, periods, plus, exclamation marks and hypens. Special characters should always be inside numbers or letters. Example: v!v is OK BUT NOT !vv or vv!"); } 回答1 new Regex(@"^[A-Za-z0-9]+([-_.+!*]+[A-Za-z0-9]+)*$"); 意思是 : 匹配必须以至少一个数字或字母字符开头: [AZ-z0-9]+ 该序列后面可能跟有零个或多个特殊字符-_.+!*后跟至少一个数字或字母字符。 第二个组合可以发生零次或多次(例如: asdf-e*r!asdf ,或者a是有效的
  • 正则表达式允许 -90.0 和 +90.0 之间的数字(Regular expression to allow numbers between -90.0 and +90.0)
    问题 允许 -90.0 和 +90.0 之间的数字的正则表达式是什么? 中间的数字可以是浮点数或整数。 回答1 我认为您不想为此使用正则表达式。 如果您的数据存储在字符串中,请使用 Double.Parse()(或 Double.TryParse()),然后检查结果值以确保它在所需范围内。 例如: public bool IsInRange(string value) { bool isInRange = false; double parsed = 0; if (Double.TryParse(value, out parsed)) { // use >= and <= if you want the range to be from -90.0 to 90.0 inclusive isInRange = value > -90.0 && value < 90.0; } return isInRange; } 如果您的值已经是double ,那么就更容易了——不需要解析。 回答2 并不是说您真的想在这里使用正则表达式(您应该解析它,而是对数字类型进行比较 - 例如 float 或 double)。 但是,你可以这样做: -?(\d|([1-8][0-9])(\.\d)?)|(90(\.0)?) 这将匹配 -90.0 到 90.0(含)。 如果您希望它是独占的,请删除 90.0
  • Need a regular expression - disallow all zeros
    I want to validate a string to meet the following conditions: Must be 6 characters long Only the first character can be alpha-numeric the rest must be numeric If first digit is alpha, it must be caps Can't be all zeros I have the following regular expression that gets everything except the all zeros part. Is there a way to disallow all zeros? ^[A-Z0-9][0-9]{5}$ Is the only way to do this to check the regex (and allow "000000") but then check specifically that it's not "000000"? Thanks.
  • 正则表达式语法:
    正则表达式语法: a|b 匹配 a 或 b gr(a|e)y 匹配 gray 或 grey . 匹配任一字符 [abc] 匹配任一字符: a 或 b 或 c [^abc] 匹配任一字符, 但不包括 a, b, c [a-z] 匹配从 a 到 z 之间的任一字符 [a-zA-Z] 匹配从 a 到 z, 及从 A 到 Z 之间的任一字符 ^ 匹配文件名的头部 $ 匹配文件名的尾部 ( ) 匹配标记的子表达式 \n 匹配第 nth 个标记的子表达式, nth 代表 1 到 9 \b 匹配字词边界 * 匹配前一项内容 0 或多次 ? 匹配前一项内容 0 或 1 次 + 匹配前一项内容 1 或多次 *? 匹配前一项内容 0 或多次 (懒人模式) +? 匹配前一项内容 1 或多次 (懒人模式) {x} 匹配前一项内容 x 次 {x,} 匹配前一项内容 x 或多次 {x,y} 匹配前一项内容次数介于 x 和 y 之间 \ 特殊转义字符 一、校验数字的表达式数字:^[0-9]*$n位的数字:^d{n}$至少n位的数字:^d{n,}$m-n位的数字:^d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$正数、负数、和小数:^(-|
  • 正则表达式允许一个字符(它不应该)为什么?(regex allows one character (it should not) why?)
    问题 您好,我正在尝试创建一个识别输入的金钱和数字的正则表达式。 我必须允许数字,因为我希望以编程方式输入非格式化数字,然后我会自己格式化它们。 出于某种原因,我的正则表达式允许一个字母字符作为可能的输入。 [\$]?[0-9,]*\.[0-9][0-9] 我知道我的正则表达式接受添加多个逗号的情况,并且小数点后还需要两位数。 我已经知道如何解决这个问题了。 我已将范围缩小到可能的*\. 作为问题 编辑 我发现了有效的正则表达式[\$]?([0-9,])*[\.][0-9]{2}但我仍然不知道它是如何或为什么首先失败的 我正在使用.formatCurrency()将输入格式化为货币格式。 它可以在这里找到,但它仍然允许我使用字母字符,所以我必须使用$(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" }); 其中输入掩码位于此处, $(this)是对文本类型输入元素的引用。 我的代码看起来像这样 <input type="text" id="123" data-Money="true"> //in the script .find("input").each(function () { if ($(this).attr("data-Money") == "true") { $(this).inputmask
  • 比较全面的常用正则表达式
    一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$13 非负整数:^\d+$ 或 ^[1-9]\d*|0$14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)
  • 正则表达式强制小数点后两位数(Regular expression to enforce 2 digits after decimal point)
    问题 我需要使用 JavaScript 验证数字字符串,以确保该数字恰好有两位小数。 只有在以下情况下,验证才会通过 该数字恰好有两位小数小数点前至少有一位。 (可能为零) 小数点前的数字不能以超过一个零开头。 有效号码: 0.01 0.12 111.23 1234.56 012345.67 123.00 0.00 无效数字: .12 1.1 0.0 00.00 1234. 1234.567 1234 00123.45 abcd.12 12a4.56 1234.5A 我试过正则表达式[0-9][\.][0-9][0-9]$ ,但它允许小数点前的字母,如12a4.56 。 回答1 . 匹配任何字符,它不会做你认为它做的事情。 你必须逃避它。 此外,您还有两个错误; 尝试 ^[0-9]+\.[0-9][0-9]$ 相反,甚至更好,使用\d表示十进制数字: ^\d+\.\d\d$ 回答2 这涵盖了所有要求: ^(0|0?[1-9]\d*)\.\d\d$ 该数字恰好有两位小数由于非可选\.\d\d$ 另外两个条件可以重新表述如下: 小数点前的数字要么是零或一个正好有一个零的数字,然后是一个不以零开头的数字 这包括在这两种情况下: 0 0?[1-9]\d* 回答3 为此,您不需要正则表达式。 JavaScript 有一个函数 toFixed() 可以满足您的需求。 var
  • 正则表达式
    一、校验数字的表达式 /表达式数字^[0-9]*$n位的数字^\d{n}$至少n位的数字^\d{n,}$m-n位的数字^\d{m,n}$零和非零开头的数字^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数^[0-9]+(.[0-9]{2})?$有1~3位小数的正实数^[0-9]+(.[0-9]{1,3})?$非零的正整数^[1-9]\d*$或^([1-9][0-9]*){1,3}$或^\+?[1-9][0-9]*$非零的负整数^\-[1-9][]0-9″*$或^-[1-9]\d*$非负浮点数^\d+(\.\d+)?$或^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$非正浮点数^((-\d+(\.\d+)?)|(0+(\.0+)?))$非负整数^\d+$或^[1-9]\d*|0$非正整数^-[1-9]\d*|0$或^((-\d+)|(0+))$正浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$负浮点数^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$浮点数^(-?\d+)(\.\d+)?$ 二
  • Textwrangler grep regexpression 参考? [关闭](Textwrangler grep regexpression reference? [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 5年前关闭。 改进这个问题 我正在寻找 Textwrangler 中使用的正则表达式的综合表格/列表。 该手册很好,但缺少可以检查快速参考备忘单的概述。 谢谢 ;) 回答1 干得好 我挑选了以下部分: 模式修改器(开关) i Case-insensitive m Multiline : allow the grep engine to match at ^ and $ after and before at \r or \n. s Magic Dot : allows . to match \r and \n x Free-spacing: ignore unescaped white space; allow inline comments in grep patterns. (?imsx) On (?-imsx) Off (?i-msx) Mixed 正则表达式元字符: . Any character except newline or carriage return [ ] Any single character of set [^ ] Any single character NOT of set * 0
  • 检测特殊字符的正则表达式
    检测特殊字符 正则表达式 特殊字符 过滤在文本输入监听时 或在按钮确认前判断最后粘贴一些常用正则表达式 特殊字符 过滤 前言: 之前写过 用户取名或聊天输入时,屏蔽脏字库的文章。前几天遇到用户取名有特殊字符,导致游戏在拉跨服数据时,被过滤无法获取数据的情况***(特殊字符用作分隔符号了)***,策划要求技术这边做下限制,不让玩家取特殊字符的昵称。 没办法,那就改咯!所以来总结一下,用户在取名或改名时,输入特殊字符的情况检测。 先把代码贴上: 在文本输入监听时 或在按钮确认前判断 /** * 检测字符串是否合法 * 检测是否含有特殊字符 * @param 需要检测的字符串 */ private function checkIllegalityStr(str:String):Boolean { // RegExp ="[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?-]"; var reg: RegExp = /[`~!#$%^&*()_\-+=<>?:\"{}|,.\/;'\\[\]]/im; // 这里只针对 英文状态字符 if(reg.test(str)) { //可在这里 弹提示语 (增强用户体验) return false; } return true; } 上面注释的表达式是包含
  • 用于测试字符串是否包含以 10 为底的有效实数的正则表达式(Regular expression to test whether a string consists of a valid real number in base 10)
    问题 例子: "1" yes "-1" yes "- 3" no "1.2" yes "1.2.3" no "7e4" no (though in some cases you may want to allow scientific notation) ".123" yes "123." yes "." no "-.5" yes "007" yes "00" yes 回答1 这允许在前面使用可选的“+”和“-”。 并允许尾随或初始空格。 /^\s*[+-]?(?:\d+\.?\d*|\d*\.\d+)\s*$/ 回答2 有几种选择。 首先,使用零宽度前瞻断言可以使正则表达式的其余部分更简单: /^[-+]?(?=\.?\d)\d*(?:\.\d*)?$/ 如果您想避免前瞻,那么我会尝试阻止正则表达式进行回溯: /^[-+]?(?:\.\d+|\d+(?:\.\d*)?)$/ /^[-+]?(\.\d+|\d+(\.\d*)?)$/ # if you don't mind capturing parens 请注意,您说的是“基数 10”,因此您实际上可能希望禁止额外的前导零,因为“014”可能是八进制的: /^[-+]?(?:\.\d+|(?:0|[1-9]\d*)(?:\.\d*)?)$/ /^[-+]?(\.\d+|(0|[1-9]\d*)(\.\d*)?)$/ 最后
  • java正则表达式
    一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$有1~3位小数的正实数:^[0-9]+(\.[0-9]{1,3})?$非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$非负整数:^\d+$ 或 ^[1-9]\d*|0$非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$正浮点数:^[1-9]\d*\.\d*|0\.\d*
  • Python系列15——正则表达式
    目录 一、什么是正则表达式 二、正则表达式的要素与语法 1、普通字符 2、特殊字符 (1)非打印字符 (3)重复匹配符 3、正则表达式的逻辑与分组 4、正则表达式的函数 (1)findall (2)split: (3)replace: 三、常用的正则表达式 1、数字 2、字符 3、特殊需求表达式 ​​​​​​​ 一、什么是正则表达式 正则表达式 (Regular Expression) 又称 RegEx, 是用来匹配字符的一种工具. 在一大串字符中寻找你需要的内容. 它常被用在很多方面, 比如网页爬虫, 文稿整理, 数据筛选等等. 最简单的一个例子, 比如我需要爬取网页中每一页的标题. 而网页中的标题常常是这种形式. 而且每个网页的标题各不相同, 我就能使用正则表达式, 用一种简单的匹配方法, 一次性选取出成千上万网页的标题信息. 正则表达式绝对不是一天就能学会和记住的, 因为表达式里面的内容非常多, 强烈建议, 现在这个阶段, 你只需要了解正则里都有些什么, 不用记住, 等到你真正需要用到它的时候, 再反过头来, 好好琢磨琢磨, 那个时候才是你需要训练自己记住这些表达式的时候. 二、正则表达式的要素与语法 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板
  • 如何编写正则表达式以仅匹配数字、字母和破折号?(How to write regular expression to match only numbers, letters and dashes?)
    问题 我需要一个只接受的表达式: 数字普通字母(无特殊字符) —— 也不允许有空格。 示例:正则表达式应该匹配: this-is-quite-alright 它不应该匹配this -is/not,soålright 回答1 您可以使用: ^[A-Za-z0-9-]*$ 这匹配完全由大写/小写字母 (ASCII AZ)、数字 (ASCII 0-9) 和破折号组成的字符串,可能为空。 这匹配(如在 rubular.com 上看到的): this-is-quite-alright and-a-1-and-a-2-and-3-4-5 yep---------this-is-also-okay 并拒绝: this -is/not,soålright hello world 解释: ^和$分别是字符串锚点的开始和结束如果您要在字符串中查找匹配项,则不需要锚点 [...]是一个字符类字符类中的az 、 AZ 、 0-9定义范围 -作为类中的最后一个字符是文字​​破折号 *是零次或多次重复 正则表达式.info 锚点、字符类、重复 变化 规范不清楚,但如果-仅用于分隔“单词”,即没有双破折号,没有尾随破折号,没有前面的破折号,则模式更复杂(只是稍微!) _"alpha"_ separating dash / \ / ^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$ \_________
  • 正则
    一、校验数字的表达式数字:^[0-9]*$n位的数字:^d{n}$至少n位的数字:^d{n,}$m-n位的数字:^d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(-)?d+(.d{1,2})$正数、负数、和小数:^(-|+)?d+(.d+)?$有两位小数的正实数:^[0-9]+(.[0-9]{2})?$有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$非零的正整数:^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$非零的负整数:^-[1-9][]0-9"*$ 或 ^-[1-9]d*$非负整数:^d+$ 或 ^[1-9]d*|0$非正整数:^-[1-9]d*|0$ 或 ^((-d+)|(0+))$非负浮点数:^d+(.d+)?$ 或 ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$非正浮点数:^((-d+(.d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$正浮点数:^[1-9]d*.d*|0.d*[1-9]d*$ 或 ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1
  • js正则 匹配 汉字、数字、英文字母、下划线 正则表达式
    1.由数字、26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3.正整数: ^[0-9]*[1-9][0-9]*$ 4.非正整数(负整数 + 0): ^((-/d+)|(0+))$ 5.负整数 ^-[0-9]*[1-9][0-9]*$ 6.整数: ^-?/d+$ 7.非负浮点数(正浮点数 + 0): ^/d+(/./d+)?$ 8.正浮点数 : ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$ 9.非正浮点数(负浮点数 + 0): ^((-/d+(/./d+)?)|(0+(/.0+)?))$ 10.负浮点数 ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 11.浮点数 ^(-?/d+)(/./d+)?$ 12 由26个英文字母组成的字符串 ^[A-Za-z]+$ 13.由26个英文字母的大写组成的字符串 ^[A-Z]+$ 14.由26个英文字母的小写组成的字符串 ^[a-z]+$ 15.由数字和26个英文字母组成的字符串 : ^[A-Za-z0-9]+$ 16.由数字