Html:
<input type="text" placeholder="Enter page title name" id="text" style="width: 500px;" />
<br />
<br />
<input type="button" value="Click Me" id="button" />
USER INPUT ::&#34;这是拉姆的笔吗? &#34; (没有双引号)
当用户点击按钮时,输入应为..
预期::&#34;是这个公羊笔&#34; (没有双引号)
主要目的是在每个单词之间添加连字符( - )并跳过其他特殊字符。
可以在Javascript中使用吗?
答案 0 :(得分:1)
使用这段代码。
$('#button').on('click', function() {
var str = $('#text').val();
$('#text').val((str.replace(/[^a-z0-9\s]/gi, '').trim().replace(/[_\s]/g, '-')));
})
replace(/[^a-z0-9\s]/gi, '')
将字符串过滤为字母数字字符。
replace(/[_\s]/g, '-')
用连字符替换所有下划线和空格。
正则表达式的来源:RegEx for Javascript to allow only alphanumeric
<强> JSFIDDLE 强>
答案 1 :(得分:0)
您可以使用2个替换语句
str.replace(/\s+/g, "-").replace(/[^a-zA-Z\d]+/g, "")
答案 2 :(得分:0)
另一种方法是选择没有特殊字符的所有文本(以及空格),然后用-
替换空格
$('#button').on('click', function() {
var str = $('#text').val();
$('#text').val((str.match(/[a-zA-Z0-9\s]+/gi).join('').trim().replace(/\s+/g, '-')));
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="Enter page title name" id="text" style="width: 500px;" />
<br />
<br />
<input type="button" value="Click Me" id="button" />
&#13;