我正在使用电子邮件主题的正则表达式,但我希望允许用户在主题中的任何地方添加一个GBP符号(£),而且非常快乐。
我的表情是:
var subjectText = new RegExp(/^([a-zA-Z0-9\.\-\'\£](\s)?)+$/);
在函数中,我要求验证内容的是以下IF语句:
if (!subjectText) {
alertMessage = alertMessage + 'You must enter a valid Subject\n';
}
无论我在主题文本字段中输入什么内容(只要其中包含£),在提交表单后,我会收到“您必须输入有效主题”消息。
有人可以帮忙吗?
答案 0 :(得分:2)
以下是使用正则表达式验证主题的方法:(我只在此验证主题)
var alertMessage = "All's good.";
var subjectText = "Send me some £ pounds.";
var subjectRegex = new RegExp(/^([a-zA-Z0-9\.\-\'\£](\s)?)+$/);
console.log(subjectRegex.test(subjectText)); // true
if (!subjectRegex.test(subjectText)) {
alertMessage = 'You must enter a valid Subject\n';
}
alert(alertMessage); // All's good.
然而,您可以通过删除字符类[]
/^([\w.'£-]\s?)+$/
其中\w
相当于[a-zA-Z0-9_]
; .
,'
,£
不需要转义,并且在-
出现在开头或结尾时(即不属于范围的一部分)也是如此。< / p>
答案 1 :(得分:0)
使用以下表达式将有所帮助:
/^([a-zA-Z0-9£\.\-\'](\s)?)+$/
如评论中所述。 £
是正则表达式的普通字符,不需要转义。
建议修改您的IF
条件,如下所示:
var subjectRegEx = new RegExp(/^([a-zA-Z0-9£\.\-\'](\s)?)+$/);
if (!subjectText.match(subjectRegEx)) {
alertMessage = alertMessage + 'You must enter a valid Subject\n';
}
假设subjectText
包含在主题字段中输入的值。