我昨天就这个主题寻求帮助,但我需要扩展它并为正则表达式添加一些内容。这是我到目前为止摆脱字符串中不需要的单词的FIDDLE,但现在我还需要替换非单词字符,例如句点,逗号,任何斜线,星星等。我怎么能添加\ W,如果这是我需要使用的呢?我尝试了许多变化但没有成功。请帮忙......
<input id="search" type="text" value="bone on ^ * ()
a thing there and an hifi if the offer, of boffin."/>
$("#search").bind('enterKey', function(e){
var search = $('#search')
.val()
.replace( /\b(on|a|the|of|in|if|an)\b/ig, '' )
.replace( /\s+/g, '-' );
alert( 'Replace spaces: ' + search);
});
$('#search').keyup(function(e){
if(e.keyCode == 13){
$(this).trigger("enterKey");
}
});
答案 0 :(得分:1)
如果你只是想删除它们,这将解决问题:
$("#search").bind('enterKey', function(e){
var search = $('#search')
.val()
.replace(/\b(on|a|the|of|in|if|an)\b|\W/ig, '')
.replace(/\s+/g, '-');
alert( 'Replace spaces: ' + search);
});
$('#search').keyup(function(e){
if(e.keyCode == 13)
{
$(this).trigger("enterKey");
}
});
如果要将所有非单词字符替换为其他字符,请使用:
$("#search").bind('enterKey', function(e){
var search = $('#search')
.val()
.replace(/\b(on|a|the|of|in|if|an)\b/ig, '')
.replace(/[^a-zA-Z0-9_ ]/g, '*')
.replace(/\s+/g, '-');
alert( 'Replace spaces: ' + search);
});
$('#search').keyup(function(e){
if(e.keyCode == 13)
{
$(this).trigger("enterKey");
}
});