一重引用符を許可する正規表現を含むこの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 - 正規表現に a を適切に含める方法は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
、正規表現を二重引用符で囲むことはできません。したがって、それを修正する何らかの方法があるはずです。