Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式测试并在javascript中存储结果_Javascript - Fatal编程技术网

正则表达式测试并在javascript中存储结果

正则表达式测试并在javascript中存储结果,javascript,Javascript,在ruby中,我经常使用以下内容: if "my string123" =~ /string(\d+)/ puts "I got #{$1}" end 我如何在javascript中执行类似的操作?目前,我一直在这样做,但感觉很脏 m = "my string123".match(/string(\d+)/) if (m) puts "I got " + m[1] 也许我应该接受这一点,但我想我会问,是否有语法上的微妙之处我遗漏了。谢谢 你没有遗漏任何东西。 如果已经定义了m,则可以

在ruby中,我经常使用以下内容:

if "my string123" =~ /string(\d+)/
  puts "I got #{$1}"
end
我如何在javascript中执行类似的操作?目前,我一直在这样做,但感觉很脏

m = "my string123".match(/string(\d+)/)
if (m)
  puts "I got " + m[1]

也许我应该接受这一点,但我想我会问,是否有语法上的微妙之处我遗漏了。谢谢

你没有遗漏任何东西。
如果已经定义了
m
,则可以执行
If(m=“string”.match(/regex/)
,但这并不太干净,并且不能与
var

一起使用。这仅用于测试文本中表达式的外观:

这用于获取匹配数组:


str然后包含[“o”,“or”,“ro”]

否,这是正确的。ruby方式应该让人感觉不舒服,因为它添加了一个隐藏的/额外的语法,您必须理解它。js方式纯粹是功能性的。应该注意的是,如果您只想获得捕获的部分而不想获得完全匹配,那么您可以使用全局匹配:
/regexp/g
。然后您的匹配将在
m[0]
中返回。如果这是您第一次使用
m
,它可能会有
var
关键字:
var m=。另外,我不认为JavaScript有
puts
@slebetman-
/g
标志的一个问题:你会得到
“string123”
,而不是
“123
”`,你忘记了这个组。@Kobi:嗯,是的。我才意识到。我认为这种行为与实际情况相反。“var”到底有多重要?我以前不使用它,而且似乎在所有浏览器中都能正常工作?:)@凯文-谢谢。对于
var
,它可能非常重要:

    var a = "my string123"; //or given as data..
    var b = /string(\d+)/;
    if (b.test(a)) alert("found some digits inside");

var str = "Watch out for the rock!".match(/r?or?/g);