我在Regexr上测试了它并且它可以工作,但它似乎在AS3中不起作用:
var emptyResult:* = new RegExp("^\s*$", "gi").exec(myField.text);
或
var emptyResult:* = /^\s*$/gi.exec(myField.text);
无论我是否在字段中有文本,空格或非空格,emptyResult始终为null。我尝试过使用和不使用g和i标签,但似乎没有任何效果。
任何人都知道为什么会这样?
答案 0 :(得分:3)
你不需要'i'标志 - 它代表'忽略大小写',它只适用于拉丁字母的字母 - 你没有使用它们。
在第一个示例中,您需要转义反斜杠,否则会将其视为逃避以下字母''。
您也不需要'g'标志,因为您正在尝试测试整个字符串(在您的情况下,行和字符串是相同的,\s
将首先遇到该行的结尾,$
之前可以。)
然而,在使用第二个正则表达式时,删除了'i'标志,它会给出我期望的结果,即测试字符串的整个文本是否包含空格,制表,回车或换行,然后返回整个字符串。
例如:
trace(/^\s*$/.exec(" \t\r\n")[0].length); // 4