当regex匹配测试字符串时,Javascript .test要么不返回任何值,要么返回false
Javascript .test either returns nothing or false, when regex matches the tested string?
我使用javascript的内置.test()
函数来测试字符串或正则表达式是否匹配。我从RegexLib取了正则表达式,所以我知道它匹配它测试的字符串(在这种情况下是joe@aol.com
),但是它要么返回false,要么什么都不返回。
var string = "joe@aol.com";
var pattern = ['w-]+@(['w-]+'.)+['w-]+/i;
var match = pattern.test(string);
document.write(match);
当正则表达式用引号括起来时,测试返回false,当它没有被括起来时,测试不返回任何值。
我已经试过了:
- 简单地使用单行,
var match = '['w-]+@(['w-]+'.)+['w-]+/i'.test("joe@aol.com");
. -
regex
和string
同时使用'
单引号和"
双引号 - 添加
/i
和/g
的正则表达式
这里有一个jsFiddle的链接,如果你认为你有一些想法如何解决这个问题:http://jsfiddle.net/wFhEJ/1/
您错过了regexp的开始斜杠。regexp的表示法是:
/regexp/flags
封闭regexp发生的事情是它变成了一个字符串,并且在jsFiddle上String.prototype.test
已经由MooTools设置。MooTools似乎提供了String.prototype.test
功能,但它与RegExp.prototype.test
不一样。
var string = "joe@aol.com";
var pattern = /['w-]+@(['w-]+'.)+['w-]+/i;
var match = pattern.test(string);
document.write(match);
请注意,document.write
是不允许的。您可能更愿意使用document.body.appendChild(document.createTextNode(match))
或类似的内容。
相关文章:
- Regex提取URL返回数组的一部分;未定义”;
- 为什么当我在数组上测试regex时,它会返回false
- JavaScript:RegEx-不返回match1 match2等
- Javascript 中的 RegEx 返回 Null
- RegEx.Test 返回总是假的
- 当与全局标志一起使用时,Javascript Regex在后续调用中返回null
- Regex以确定该值在JS中是否有效,返回null
- 返回javascript中regex字符串的一部分
- Regex:如何返回不在括号中的匹配项
- Regex exec函数在Javascript中未返回正确的结果
- 使用regex返回新的文件名
- Javascript和RegEx:match函数返回一个数组
- regex替换javascript返回整个值
- 为什么Javascript's regex.exec()并不总是返回相同的值
- Regex:是以字符串或数字形式返回的数字匹配项
- Javascript split() Regex 表达式在 Chrome 中返回不需要的逗号
- JS regex.exec() 返回第一个查找
- Regex exec()不是't返回字符串中的第一个匹配项,但返回后续匹配项
- 从数据库(NodeJS)中的搜索返回Regex模式
- 如何返回regex匹配子集(可能通过替换模式,但不进行替换)