我写的javascript正则表达式为啥匹配不了我的数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我写的javascript正则表达式为啥匹配不了我的数字?相关的知识,希望对你有一定的参考价值。

var a = /^[0-9]*(\.[0-9]1,10)?$/;这是正则表达式
要匹配的就是带小数的数字
当匹配320.00时 为什么返回false?

你这个表达式匹配320.00时是true,但如果你是要匹配带小数的数字的话,你这个表达式就是错误的,你这个表达式是匹配数字,包含带小数的数字。 参考技术A 你在什么浏览器中执行的。我本地的chrome和IE8浏览器都是正常的,返回为true。

a = /^[0-9]*(\.[0-9]1,10)?$/;
/^[0-9]*(\.[0-9]1,10)?$/
a.test(320.00)
true本回答被提问者采纳
参考技术B

请在此输入您的回答

这个返回是true啊

为啥我的带有 ^ 的 Emacs 正则表达式不能匹配行的开头?

【中文标题】为啥我的带有 ^ 的 Emacs 正则表达式不能匹配行的开头?【英文标题】:Why doesn't my Emacs regular expression with ^ to match the start of a line work?为什么我的带有 ^ 的 Emacs 正则表达式不能匹配行的开头? 【发布时间】:2010-11-10 05:05:07 【问题描述】:

我正在尝试设置.emacs,以便任何以字母makefile 开头的文件都将其设置为makefile 模式。例如。 makefile-something 应该处于 makefile 模式。

这不起作用:

(setq auto-mode-alist (cons '("^makefile" . makefile-mode) auto-mode-alist))

但这确实:

(setq auto-mode-alist (cons '("makefile" . makefile-mode) auto-mode-alist))

谁能解释一下原因?

【问题讨论】:

【参考方案1】:

是因为文件名前面有路径组件,试试:

"/makefile[^/]*$"

见http://www.gnu.org/s/emacs/manual/html_node/elisp/Auto-Major-Mode.html(页面底部)

EDI:根据 Sean 评论更正正则表达式

【讨论】:

该正则表达式还将匹配 /foo/makefiles/bar 之类的内容。我想你想要“/makefile[^/]*$”。 幸运的是我没有 /foo/makefiles/bar 之类的东西,但感谢 Sean 的更正。【参考方案2】:

所以这只是一个有根据的猜测,但我注意到auto-mode-alist 中想要匹配文件名开头的其他正则表达式不使用^,他们使用/。例如:

("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode)

(来自 Emacs 23.2.1)基于此,我认为正则表达式可能应用于文件的 完整路径名,而不是基本名称。所以试试

(setq auto-mode-alist (cons '("/makefile" . makefile-mode) auto-mode-alist))

改为。

【讨论】:

【参考方案3】:

为了方便,试试

 (add-to-list 'auto-mode-alist ...

【讨论】:

感谢您的提示。我的emacs知识很差。

以上是关于我写的javascript正则表达式为啥匹配不了我的数字?的主要内容,如果未能解决你的问题,请参考以下文章

C正则表达式,匹配两个字符串之间的内容

为啥这个正则表达式模式不能按预期工作?

正则表达式:匹配字符的第一次出现

使用正则表达式检测词组搭配

JavaScript—— 正则表达式

正则表达式不匹配,不知道为啥[重复]