将正则表达式传递给方法时遇到问题:

时间:2010-06-08 13:53:08

标签: javascript validation

您好我的页面上有一个输入:

onclick="return tagList.addTag(true,'/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/')"

然后我有一些想要通过正则表达式的代码.......

//get the value from the textbox 
var _tagObject = document.getElementById('txt_newTag');

//validate the contents  
validateEmail(_tagObject.value,validationExpression);

function validateEmail(stringToValidateArg,validationExpressionArg)
{    
     return validationExpressionArg.test(stringToValidateArg);
}

但是这不起作用我收到以下错误消息:

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; Tablet PC 2.0)
Timestamp: Tue, 8 Jun 2010 13:44:03 UTC


Message: Object doesn't support this property or method
Line: 101
Char: 5
Code: 0
URI: http://server.com/shared/scripts/tag-list.js

有没有人知道我不能通过页面上的html元素传递正则表达式,就像我一样?

任何帮助都非常感谢javascript编程......

皮特

2 个答案:

答案 0 :(得分:2)

/.../周围不需要引号。

onclick="return tagList.addTag(true, /^...$/ )"
#                                   ^       ^ no quotation marks needed.

答案 1 :(得分:0)

您传递的是字符串,而不是正则表达式对象。删除/.../周围的单引号。