谁能解释我如何形成正则表达式并解释这个正则表达式?

时间:2011-08-08 08:51:50

标签: javascript regex

replace(/[^0-9]/g,''));
  1. 替换是一种方法
  2. /表示什么?
  3. ^表示0-9
  4. / g表示什么?
  5. 我们是否需要用/开始正则表达式?或者我们可以从任何东西开始吗?

11 个答案:

答案 0 :(得分:4)

/引入了正则表达式文字(就像"'引入了字符串文字)。正则表达式文字的格式为/expression/flags,其中expression是表达式的主体,flags是可选标记(i,不区分大小写,{{1对于全局,g用于多行内容。)

m作为^中的第一个字符,表示与以下内容匹配的任何字符 。因此[]表示“除[^0-9]0之外的任何字符”。

9结束正则表达式文字并在其上包含“全局”标志。如果没有/gg只会替换第一个匹配,而不是全部匹配。

总而言之,它所做的就是将任何不是replace0的字符替换为空白 - 例如,删除非数字。它可以更简单地写成:

9

...因为var result = str.replace(/\D/g, ''); (请注意,大写\D)表示“非数字”。

MDC在正则表达式上有a decent page

答案 1 :(得分:2)

/和/是正则表达式模式的开始和结束,g表示全局(第二个之后的任何东西/是正则表达式的可选修饰符)。

^表示不是。

所以在这种情况下,它会删除任何不是数字的字符。

答案 2 :(得分:1)

答案 3 :(得分:1)

  1. replace是字符串类型的方法
  2. / /表示里面有正则表达式
  3. ^ inside []表示“不是”
  4. “g”表示全局替换
  5. javascript中的正则表达式应该放入一对“/”

答案 4 :(得分:1)

This W3学校教程应涵盖大部分基础知识。 This其他教程涵盖了flashg,例如可以传递给正则表达式引擎的/g

答案 5 :(得分:1)

  1. 正则表达式的开始和结束
  2. 不是,这基本上意味着,匹配任何非整数
  3. 全局替换,没有替换的效果仅在第一次遭遇时进行替换。
  4. 至少在javascript中,是的,你必须使用/.

答案 6 :(得分:0)

/表示正则表达式的开头和结尾。因此在你的情况下[^ 0-9]是正则表达式。 ^表示行的开头 / g表示所有匹配 - globl的替换,而不仅仅是第一场比赛。

答案 7 :(得分:0)

/ g启用“全局”匹配。使用replace()方法时,请指定此修饰符以替换所有匹配项,而不是仅替换第一个匹配项。

/ start regex

^匹配除了符号0-9

答案 8 :(得分:0)

它的作用:删除所有非数字(0-9)字符。

  • 声明RegExp文字
  • 时使用正斜杠(/)
  • [^ 0-9]表示除0-9之外的任何字符。 ^表示“除了”。你可以删除它,它只会找到0-9字符。
  • / g代表全球替代。

因此,这将查找任何非数字字符并替换为空。 正如Shamim所说,regular-expressions.info/是一个很棒的网站。祝你好运!

您可以在此网站上试用javascript正则表达式:http://regexpal.com/ 夫妻http://www.regular-expressions.info/tutorial,这是一个很好的学习资源。

答案 9 :(得分:0)

好吧,关于创建一个,这个论坛不是最好的 - 这是一个相当大的问题,最好留给one of the best resources on RegExp that I know of

看起来你在JS,所以:

  • replace是String的一种方法。它用第二个字符串替换提供的表达式,在这种情况下没有。
  • 在JavaScript /必须以所有RegEx开头和结尾,中间的所有/都必须使用\进行转义(因此它们看起来像这样:\/)。在其他语言(PHP,Perl是最突出的一些)中,您可以使用其他字符,例如~#
  • {li} ^内部[]表示否定,-表示范围,因此[^0-9]表示“不是0,1,2,3,4,5,6,7 ,8或9“[0-9]确实有\d的简写。所以/[^\d]/g是一种有效的替代方式来说同样的事情。
  • /g表示“全局”,如“匹配所有事件,而不仅仅是第一个。

您的表达方式意味着“将所有非数字替换为空白”。

答案 10 :(得分:0)

/封装您的模式(如果要在模式中使用它,则需要转义/使用\) 斜杠后的尾随字符是修饰符。在这种情况下,'g'表示全局搜索(即查找所有匹配)

^是否定.. [0-9]是指示从0到9的所有数字的范围。 所以[^ 0-9]意味着除了数字之外的任何东西 所以这个正则表达式基本上用''(即删除它们)

替换字符串中除数字之外的任何内容

Regex有很多其他功能,你应该研究它们!