replace(/[^0-9]/g,''));
我们是否需要用/开始正则表达式?或者我们可以从任何东西开始吗?
答案 0 :(得分:4)
/
引入了正则表达式文字(就像"
和'
引入了字符串文字)。正则表达式文字的格式为/expression/flags
,其中expression
是表达式的主体,flags
是可选标记(i
,不区分大小写,{{1对于全局,g
用于多行内容。)
m
作为^
中的第一个字符,表示与以下内容匹配的任何字符 不 。因此[]
表示“除[^0-9]
到0
之外的任何字符”。
9
结束正则表达式文字并在其上包含“全局”标志。如果没有/g
,g
只会替换第一个匹配,而不是全部匹配。
总而言之,它所做的就是将任何不是replace
到0
的字符替换为空白 - 例如,删除非数字。它可以更简单地写成:
9
...因为var result = str.replace(/\D/g, '');
(请注意,大写\D
)表示“非数字”。
MDC在正则表达式上有a decent page。
答案 1 :(得分:2)
/和/是正则表达式模式的开始和结束,g表示全局(第二个之后的任何东西/是正则表达式的可选修饰符)。
^表示不是。
所以在这种情况下,它会删除任何不是数字的字符。
答案 2 :(得分:1)
答案 3 :(得分:1)
javascript中的正则表达式应该放入一对“/”
答案 4 :(得分:1)
答案 5 :(得分:1)
至少在javascript中,是的,你必须使用/.
答案 6 :(得分:0)
/表示正则表达式的开头和结尾。因此在你的情况下[^ 0-9]是正则表达式。 ^表示行的开头 / g表示所有匹配 - globl的替换,而不仅仅是第一场比赛。
答案 7 :(得分:0)
/ g启用“全局”匹配。使用replace()方法时,请指定此修饰符以替换所有匹配项,而不是仅替换第一个匹配项。
/ start regex
^匹配除了符号0-9
答案 8 :(得分:0)
它的作用:删除所有非数字(0-9)字符。
因此,这将查找任何非数字字符并替换为空。 正如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,所以:
/
必须以所有RegEx开头和结尾,中间的所有/
都必须使用\
进行转义(因此它们看起来像这样:\/
)。在其他语言(PHP,Perl是最突出的一些)中,您可以使用其他字符,例如~
和#
。^
内部[]
表示否定,-
表示范围,因此[^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有很多其他功能,你应该研究它们!