我有这个 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>
我做的测试:
- 如果我添加
single
或double quotes
围绕"regex"
正则表达式不起作用。 - 如果我在
forward slashes
周围添加,/regex/
那么正则表达式可以工作但不完全,例如它不允许100name
但它允许name100
。 - 如果我同时添加双引号和正斜杠
"/regex/"
,或者'/regex/'
正则表达式不起作用。 - 如果我添加
name = name.replace(filter, '');
然后脚本不起作用。
我的问题:
1 - 如何single quote
在正则表达式中正确包含 a ?
2 - 如何正确包含double quotes
?
- 更新
asp.net
我在using中测试了相同的正则表达式,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
我不能用双引号将正则表达式括起来。所以必须有一些方法来解决它。