【发布时间】:2013-02-18 07:51:47
【问题描述】:
我有这个 javascript 示例,其中包含一个允许单引号的正则表达式,但由于单引号,存在问题:
<script language="javascript">
function checkname() {
var name = document.getElementById('Name');
var filter = ^[a-zA-Z'.\s]{1,50};
if (!filter.test(name.value)) {
alert('name is not valid');
name.focus;
return false;
}
return true;
}
</script>
我做的测试:
- 如果我在
"regex"周围添加single或double quotes,则正则表达式不起作用。
- 如果我在
/regex/周围添加forward slashes,那么正则表达式可以工作但不完全,例如它不允许100name,但它允许name100。
- 如果我同时添加双引号和正斜杠
"/regex/"或'/regex/',则正则表达式不起作用。
- 如果我添加
name = name.replace(filter, '');,那么脚本将不起作用。
我的问题:
1 - 如何在正则表达式中正确包含single quote?
2 - 如何正确包含double quotes?
- 更新
我在asp.net 中使用RegularExpressionValidator 测试了我相同的正则表达式,它工作正常,因为我认为我可以用双引号括起来:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" Text="name is not valid" validationgroup="validationgroup1" ValidationExpression="^[a-zA-Z'.\s]{1,50}"></asp:RegularExpressionValidator>
但在JavaScript 中,我不能将正则表达式用双引号括起来。所以一定有办法解决。
【问题讨论】:
标签: javascript asp.net html regex validation