我有这个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
?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
中,我不能将正则表达式用双引号引起来。因此,必须有某种方法可以解决它。 最佳答案
我想你需要的是
var filter = /^[\w'".\s]{1,50}$/
演示:Fiddle
您可以使用
\w
表示单词字符,例如a-zA-Z0-9
,并且^
标记行的开头,而$
标记行的结尾。关于javascript - 对正则表达式中的单引号和双引号有疑问吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15197941/