正则表达式和GBP(£)

时间:2013-10-22 14:40:51

标签: javascript regex

我正在使用电子邮件主题的正则表达式,但我希望允许用户在主题中的任何地方添加一个GBP符号(£),而且非常快乐。

我的表情是:

var subjectText = new RegExp(/^([a-zA-Z0-9\.\-\'\£](\s)?)+$/);

在函数中,我要求验证内容的是以下IF语句:

if (!subjectText) {
    alertMessage = alertMessage + 'You must enter a valid Subject\n';
}

无论我在主题文本字段中输入什么内容(只要其中包含£),在提交表单后,我会收到“您必须输入有效主题”消息。

有人可以帮忙吗?

2 个答案:

答案 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包含在主题字段中输入的值。