我有一个电话号码输入字段,允许用户以他们想要的任何格式添加电话号码(555-555-5555、(555) 555 - 5555 等)。
由于它只是一个电话号码字段,因此我可以忽略除字段中的数字之外的所有内容。
我目前正在使用以下代码。它提取了所有数字,但问题是它们没有按顺序排列 - 它的顺序是混乱的。
如何按照原始字符串中出现的顺序提取数字?
preg_match_all('/\d+/', $Phone, $matches);
$Phone = implode('', $matches[0]);
Run Code Online (Sandbox Code Playgroud)
编辑:它们实际上并不是来自该函数的混乱顺序 - 我将数字插入到 int(10) 数据库字段中,这导致了混乱。但是,下面的答案仍然是实现我的目标的更有效的方法。
我处于一种需要在电子邮件正文中以垂直顺序设置一些文本的情况下,
使用以下CSS,我可以在HTML中垂直设置文本,但不能在GMAIL电子邮件正文中设置相同的文本。
我的Gmail正文中的代码:
<div style=" width:50px; float:left; position:relative;padding-top:80px;transform: rotate(-90deg); -ms-transform: rotate(-90deg); -moz-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); -o-transform: rotate(-90deg);">
<h1 id="Header" style="direction: rtl;font-family: Arial, Helvetica, sans-serif; font-size: 24px; font-weight: normal; color: #434242; white-space: nowrap; position:relative; height:auto; "> newsletter 1 </h1>
</div>
Run Code Online (Sandbox Code Playgroud) 在PHP中,if/else if语句是否有最快/正确的排序方式?出于某种原因,在我的脑海中,我喜欢认为第一个if语句应该是预期的"最受欢迎"符合条件,然后是第二个等等.但是,它真的重要吗?如果第二个条件是最受欢迎的选择(意味着系统必须始终读取第一个条件),是否会影响速度或处理时间
例如:
if ("This is the most chosen condition" == $conditions)
{
}
else if ("This is the second most chosen condition" == $conditions)
{
}
else if ("This is the third most chosen condition" == $conditions)
{
}
Run Code Online (Sandbox Code Playgroud) 存在这个问题的许多变体,我尝试了一些生成器,但我似乎找不到与之匹配的正则表达式.假设我的电话号码看起来像"345-324-3243 X039"我想删除除数字,字母x和加号(显示在国际号码中)之外的所有内容.
这是我目前的非工作正则表达式和代码:
$phone = "345-324-3243 X039";
preg_replace('[^\d|x|\+]', '', $phone);
Run Code Online (Sandbox Code Playgroud)
我希望它出来"3453243243X039",但我得到"30234-2349".
使用Facebox的文档,我试图以编程方式弹出Facebox,Facebox内容是文档中div的内容.
问题是它没有打开那个内容 - 它打开了空白.怎么了?带有示例的完整代码包含在这个jsFiddle中:http://jsfiddle.net/N4B4v/1/
<div id="#TEST10" style="display: none;">
HEYYYY!
<br />
<br />
heyyyyy!
</div>
<div style="margin-bottom: 10px;">
<a href="#" onclick="jQuery.facebox({ div: '#TEST10' }); return false;"><input type="checkbox" name="AgreeToRequirements" /></a>Open Facebox By Checking The Box
</div>
Run Code Online (Sandbox Code Playgroud) 由于这个问题,我能够找到Google Analytics(分析)所指的大多数Webkit(所有3位数Webkit)的Safari版本。但是,有些未在Wikipedia条目中列出。
这是Analytics(分析)向我显示的快照。
7534和6533 Webkit指的是Safari的哪个版本/操作系统?
1. 7534.48.3 45.50%
2. 534.57.2 12.51%
3. 534.55.3 8.44%
4. 533.22.3 6.60%
5. 534.52.7 4.96%
6. 6533.18.5 4.95%
Run Code Online (Sandbox Code Playgroud) 我已经看过很多不同的jQuery插件样板,并阅读了许多不同的jQuery插件创作文章,包括官方文章.但是,从根本上说,我似乎仍然缺少一些东西!
我正在使用我在别处看到的混合代码和jQuery的官方创作指南.
从代码中可以看出,我正在做所有内容return this.each(function() { });
.这包括我的私人职能.我认为这意味着对于每个.pluginName();
被调用的代码,代码将被运行并绑定到该实例.例如,我在randID
每个元素ID的末尾添加一个,这样如果创建了多个实例,则实例可以引用正确的元素.
我的问题是,当我在同一页面上有两个实例时,第二个实例的函数(如displayAvailableItems()
)正在使用第一个实例randID
.
我假设有两件事是错误的:功能在错误的地方,而randID是一种识别元素的坏方法.如果我移动displayAvailableItems()
到正上方retun this.each(function() { });
,则availableItem
变量不再可用.
这是我的代码的缩写版本:(pastebin)http://tny.cz/6d3d52a8
$.pluginName = {
id: 'PluginName'
,version: '1.0'
,defaults: { // default settings
foo: 'bar'
}
};
(function($) {
//Attach this new method to jQuery
$.fn.extend({
pluginName: function(params) {
//Merge default and user parameters
var params = $.extend($.pluginName.defaults, params)
,otherGeneralVars = 'example'
;
return this.each(function() {
var $t = $(this); …
Run Code Online (Sandbox Code Playgroud) 由于一些奇怪的要求以及在我们的应用程序中实现 jQuery 的方式,我必须通过复选框 onclick 事件调用 jQuery 函数。
下面是通过 div ID 触发的函数的完美实现。但是,同样的代码在我的应用程序中不起作用。
在我的应用程序中,我使用的是 jQuery 1.7.1 版。我没有收到任何错误,该功能根本不会触发。我正在使用 Chrome 进行调试。当我尝试在 onclick 中调用它时,它会响应,但会返回undefined
.
HTML
<div id="dialog-confirm" title="Select Options">
<!--I need to call function in onclick event for checkbox below-->
<input type="checkbox" id="chkall" /> Check/Uncheck
<br /><br />
<input type="checkbox" />Option 1<br />
<input type="checkbox" />Option 2<br />
<input type="checkbox" />Option 3<br />
<input type="checkbox" />Option 4<br />
<input type="checkbox" />Option 5<br />
<input type="checkbox" />Option 6<br />
<input type="checkbox" />Option 7
</div> …
Run Code Online (Sandbox Code Playgroud) 使用DOMDocument()
,我正在替换a中的链接$message
并添加一些东西,比如[@MERGEID]
.当我保存更改时$dom_document->saveHTML()
,链接得到"排序"的url编码.[@MERGEID]
成为%5B@MERGEID%5D
.
稍后在我的代码中,我需要[@MERGEID]
用ID 替换.所以我搜索urlencode('[@MERGEID]')
- 但是,urlencode()
将符号(@)的商业广告更改为%40,而saveHTML()则将其保留.所以没有比赛 - '%5B@MERGEID%5D' != '%5B%40MERGEID%5D'
现在,我知道可以运行str_replace('%40', '@', urlencode('[@MERGEID]'))
以获得我在$ message中找到合并变量所需的内容.
我的问题是,DOMDocument使用什么RFC规范,为什么它与urlencode甚至rawurlencode不同?有什么我可以做的就是保存str_replace吗?
演示代码:
$message = '<a href="http://www.google.com?ref=abc" data-tag="thebottomlink">Google</a>';
$dom_document = new \DOMDocument();
libxml_use_internal_errors(true); //Supress content errors
$dom_document->loadHTML(mb_convert_encoding($message, 'HTML-ENTITIES', 'UTF-8'));
$elements = $dom_document->getElementsByTagName('a');
foreach($elements as $element) {
$link = $element->getAttribute('href'); //http://www.google.com?ref=abc
$tag = $element->getAttribute('data-tag'); //thebottomlink
if ($link) {
$newlink = 'http://www.example.com/click/[@MERGEID]?url=' . $link;
if ($tag) {
$newlink .= '&tag=' …
Run Code Online (Sandbox Code Playgroud) 我有一个嵌套的子查询,用于选择AlbumID
所选视频所在的随机数(视频可以在多个专辑中),然后外部查询会根据该查询返回视频和专辑信息AlbumID
.
问题是查询返回混合结果; 有时它会从一张专辑中提供一些视频,有时它会提供来自多个专辑的视频,有时它不返回任何内容.
如果我指定特定AlbumID
而不是子查询,则外部查询有效,并且子查询本身正确地返回1随机AlbumID
.但放在一起,它给我的结果好坏参半.我错过了什么?为什么它会返回不同数量的行和多个专辑?
我已经用测试数据复制了这个问题,你可以在CREATE
这里找到查询:http://pastebin.com/raw.php?i = e6HaaSGK
SELECT SQL:
SELECT
Videos_Demo.VideoID,
VideosInAlbums_Demo.AlbumID
FROM
VideosInAlbums_Demo
LEFT JOIN
Videos_Demo
ON Videos_Demo.VideoID = VideosInAlbums_Demo.VideoID
WHERE
VideosInAlbums_Demo.AlbumID = (
SELECT
AlbumID
FROM
VideosInAlbums_Demo
WHERE
VideoID = '1'
ORDER BY
RAND()
LIMIT 1
)
Run Code Online (Sandbox Code Playgroud) php ×4
jquery ×3
javascript ×2
regex ×2
benchmarking ×1
domdocument ×1
encode ×1
facebox ×1
html ×1
html-email ×1
mysql ×1
phone-number ×1
preg-match ×1
preg-replace ×1
rfc ×1
safari ×1
subquery ×1
urlencode ×1