Javascript - 正则表达式不一致匹配

时间:2013-09-10 07:45:30

标签: javascript regex

我对这个问题感到疯狂,我尝试从以下字符串中提取“拉丁语”句子(比原来短):

My Name is Yoann

ホームインサイト最新のインサイト運用チームからの最新のマーケ
ットアップデート、運用アップデートマーケットアップデート市場環境情報に関す
るレポート投資アップデート投資環境情報レポート及び出版物運用戦略運用戦略
ファーストステート・スチュワートアジア・パシフィック、グローバル・エマージング・マーケット、ワールドワイド株式

Hello World

这是正则表达式:

...
//text=My Name is Yoann...
pattern = new RegExp("([A-Za-z]+[\s]?[A-Za-z])+", "g");
results= text.match(pattern);

当我跑步时,我得到:

//results[0]="My"
//results[1]="Name"
//results[2]="is"
//results[3]="Yoann"
//...

单词在“空格”上分开。当我试用http://regexlib.com(JS客户端引擎)测试人员或http://regexpal.com时,结果如下:

//results[0]="My Name is Yoann"
//results[1]="Hello World"

所以我不明白我的代码中我做错了什么,但我没有得到相同的结果。

感谢您的帮助。

的Yoann

1 个答案:

答案 0 :(得分:4)

> "foo bar".match(new RegExp("[a-z]\s[a-z]"))
null
> "foo bar".match(new RegExp("[a-z]\\s[a-z]"))
["o b"]

使用RegExp构造函数时,请加倍斜杠。更好的是,使用正则表达式文字,例如

/[A-Z][A-Z\s]*[A-Z]|[A-Z]/gi

http://jsfiddle.net/4PdJh/1