用正则表达式判断一个字符串的开头是否是数字
/^\d/
/\A\d/
如果不是特别需要,我会用 \A 而不是 ^,防止考虑不周带来的安全问题。 区别是:
\A
^
/\A\d/ =~ "0aa" #=> 0 /^\d/ =~ "0aa" #=> 0 /\A\d/ =~ "aaa\n0" #=> nil /^\d/ =~ "aaa\n0" #=> 4
#2 楼 @qhwa 看来 ruby 是默认开启多行匹配的,在 js 里面,如果不加 m flag,则 ^ $ 的意义与 \A \z 一样。
$
\z
#3 楼 @alsotang 你在 vim 里按 ^ 也是到行首而不是文件首
#3 楼 @alsotang 其实是单行模式。ruby 的单行模式中 ^ 就是匹配「行首」,而不是「起始」。和 js 处理不同。
实际上 ruby 的多行模式是这样的:
# 这是单行模式 /a.b/ =~ "aaa\nbbb" #=> nil # 这是多行模式 /a.b/m =~ "aaa\nbbb" #=> 2