gpt4 book ai didi

javascript - 有关正则表达式中的单引号和双引号的问题吗?

转载 作者:行者123 更新时间:2023-12-02 18:57:22 33 4
gpt4 key购买 nike

我有这个 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>

我所做的测试:

  • 如果我添加singledouble 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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com