我正在使用JS从页面标题中删除/替换字符以将slug/url
显示为
function convertToSlug(Text){
return Text
.toString()
.trim()
.toLowerCase()
.replace(/\s+/g, "-")
.replace(/[^\w\-]+/g, "")
.replace(/\-\-+/g, "-")
.replace(/^-+/, "")
.replace(/-+$/, "");
}
这会将This is a page title | Company Name
的网页标题转换为this-is-a-page-title-company-name
,但如何删除|
右侧的所有文字,以便返回的帖子为this-is-a-page-title
?
请注意,公司名称将会更改,只删除| Company Name
的全部内容是不够的。我需要它适用于|
右侧的任何标题版本。
答案 0 :(得分:2)
用空字符串替换管道符号(|
)及其后的所有内容:
function convertToSlug(Text){
return Text
.replace(/\|.*/, '')
.trim()
.toLowerCase()
.replace(/\s+/g, '-');
}
console.log(convertToSlug('This is a page title | Company Name'));

答案 1 :(得分:2)
假设您正在使用| char作为分隔符,您可以使用以下内容:
function convertToSlug(Text){
return Text
.split('|')[0]
.trim()
.toLowerCase()
.replace(/\s/g,"-");
}
答案 2 :(得分:0)
延迟回复,但可能对其他人有用。
<input type="text" id="txtInput" />
<input type="button" onclick="return convertToSlug();" value="Remove text to the right of a character in JS
">
<script>
function convertToSlug(){
var Text = document.getElementById("txtInput");
var purgeCharPosition = Text.indexOf("|");
return Text
.toString()
.trim()
.substr(purgeCharPosition)
.toLowerCase()
.replace(/\s+/g, "-")
.replace(/[^\w\-]+/g, "")
.replace(/\-\-+/g, "-")
.replace(/^-+/, "")
.replace(/-+$/, "");
}
</script>