我正在尝试创建一个脚本来获取单词的第一个字符,但有些单词被排除在外。所以要过滤这些单词,请使用正则表达式并将其替换为空。 在这里我的代码:
$(document).on("keyup","input[name=name]",function(){
var val = $(this).val().replace("/((golfpark|golfcourse|course|golfclub|golfbaan|golf|en|&|country|club|gc)|[\s]([^\s]{0,3})[\s]|[\s])/i","").substring(0,1).toUpperCase();
$("select[name=char_link]").val(val);
});
例如,如果我输入'Golfbaan&乡村俱乐部演示'在输入字段中,outpus必须是'demo'中的'D'。 这是de jsfiddle的例子: http://jsfiddle.net/qCUrH/
答案 0 :(得分:2)
问题是val()
之后你有一个不必要的分号。您的代码正在抛出" Uncaught SyntaxError:意外的令牌。 "
变化:
$(this).val();.replace(...);
要:
$(this).val().replace(...);
此外,为了使正则表达式起作用,您需要删除引号。
变化:
.replace("/MyPattern/i", ...);
要:
.replace(/MyPattern/i, ...);
答案 1 :(得分:1)
尝试
var val = $(this).val().replace(/((golfpark|golfcourse|course|golfclub|golfbaan|golf|en|&|country|club|gc)|[\s]([^\s]{0,3})[\s]|[\s])/ig,"").substring(0,1).toUpperCase();
在;
之后没有$(this).val();
此外,您必须删除"
中正则表达式周围的封闭replace()
您还缺少正则表达式/reged/ig
演示:Fiddle
答案 2 :(得分:1)
您将传递一个字符串作为要替换的第一个参数。如果删除正则表达式周围的“引号”,则会将其视为正则表达式。
$(document).on("keyup","input[name=name]",function(){
var val = $(this).val().replace(/((golfpark|golfcourse|course|golfclub|golfbaan|golf|en|&|country|club|gc)|[\s]([^\s]{0,3})[\s]|[\s])/i,"").substring(0,1).toUpperCase();
$("select[name=char_link]").val(val);
});